Background workers

Two long-running processes do everything that isn't serving a page. If exactly one thing about your install seems broken — metadata never appears, a transfer sits at zero — the queue worker not running is the most likely cause.

What each one does

ProcessResponsibilities
php artisan queue:workMetadata enrichment, transcoding, downloads, server transfers
php artisan schedule:workScheduled library scans, backups, pruning

The queue is the one people forget. Without it, a server transfer is approved and then sits doing nothing at all; enrichment jobs pile up and metadata never fills in. No error appears anywhere obvious — the work simply doesn't happen.

Keeping them alive per OS

macOS

  • Admin → Services — starts, stops and shows logs for both workers, built on launchd. macOS only.
  • Or install the shipped launchd plists (com.soundchex.queue.plist, com.soundchex.scheduler.plist) from Documentation & Planning/ into ~/Library/LaunchAgents/ — they start the workers at login. Edit the paths if your clone lives somewhere else.

Linux

systemd user services — a ready-to-adapt unit file is in Install on Linux. Remember loginctl enable-linger so they survive logout.

Windows

Run each in its own terminal, or install them as Windows services with NSSM. The Services admin page detects that launchd is absent and says so rather than failing.

Telling that they're running

  • Add a file to a watch folder — it should appear in the library after the next scheduled scan without you running anything.
  • New items should gain artwork and metadata within minutes (with sources configured).
  • On macOS, Admin → Services shows live status and logs.