Skip to content

Jobs

Syncs and maintenance tasks run as jobs. A job is one trigger (a single target, or Sync all) made of one task per target. The primary dispatches each task to a connected worker whose roles include that target — except housekeeping, which runs in-process on the primary.

Job overview

Tiles are grouped:

  • Sources — BECS, Lime, NetBox (update Factum)
  • Destinations — DNS, Certificates, Icinga, LibreNMS, Oxidized, Prometheus (generated from Factum)
  • Maintenance — housekeeping (trim old job history)

Sync on a tile queues that target. Sync all runs every enabled sync target in source-then-destination order, one at a time, so a destination never writes from stale Factum data. Housekeeping is not included in Sync all; run it from its tile or a schedule.

If no connected worker handles a target, the job is created and marked failed immediately — it still shows up in history.

Job status

Job status shows which worker nodes are configured vs actually connected, plus recent jobs. Open a job to see per-target tasks, exit code, and (when the worker command was given --job) structured info/warning/error lines.

Scheduler

Scheduler stores cron entries. Each row has a name, a target (all or one job name, including housekeeping and device-sync), an enabled flag, and last/next run. Presets cover common intervals; Custom is a five-field cron expression.

Nothing starts housekeeping on its own. If you want old jobs pruned, create a schedule for it (or click Run on the overview tile).

Device deletions

LibreNMS delayed delete is a separate queue: devices LibreNMS still has that Factum no longer wants monitored. Device deletions lists them with a reason (no matching Factum device, disabled, not monitored). Operators can wait for the grace period or delete on the next sync. Enable the delay and its day count under Admin → Destinations → LibreNMS.