Workers
Admin → Platform Settings → Workers (/admin/platform-settings/workers) lists every background worker OpSee runs — the ones that ingest data and the ones that keep the database tidy — with its health, throughput and last error, and lets you enable, disable, retune or debug each one.
Requires the perm:system:admin permission. There is no admin bypass.
What a worker is
A worker is a loop that wakes on its poll interval, does one cycle of work, and records what happened. Workers are grouped by type, shown as a chip on each row:
| Type | Examples of what it does |
|---|---|
ingestion | Collects from OPC-UA, MQTT and Modbus; materialises OEE availability, production and quality |
maintenance | Applies the RETENTION_* windows, dropping old data |
calculation | Evaluates configured calculations and writes their output tags |
alarms | Evaluates alarm definitions and delivers notifications |
backup | Runs the offsite backup and, when explicitly enabled, a restore |
analysis | Drains queued trend-analysis jobs |
The registry is read from the database, so the list shows every registered worker regardless of which process actually hosts it — several run in a separate ingestion sidecar rather than in the API container.
Reading the screen
Three cards summarise the fleet: total Workers, how many are Running, and how many Need attention (degraded or unhealthy). The table refreshes every 10 seconds while Auto-refresh is on; the toggle in the header turns it off, and refreshing pauses automatically while you are editing a row.
| Column | Meaning |
|---|---|
| Worker | Its name and description |
| Type | Group, as above |
| Health | See the table below |
| Enabled / Debug | Toggles — see Controlling a worker |
| Interval | Seconds between cycles |
| Last run | When the last cycle finished and how long it took; a spinner and Running while a cycle is in flight |
| Throughput | Items processed and errors in total, plus consecutive errors when there are any |
| Last error | The most recent error message |
Health
Health is derived from the worker's own recorded state, in this order:
| Health | What it means | What to do |
|---|---|---|
| Disabled | Switched off here. Nothing runs. | Nothing, if that is intended |
| Stopped | Enabled, but not currently running | Check that the process or container hosting it is up |
| Unhealthy | 10 or more consecutive errors, or no cycle for more than three times its poll interval | Investigate now — this worker is not doing its job |
| Degraded | At least one consecutive error, but fewer than 10 | Read the last error; often a transient source or network problem that clears itself |
| Healthy | Running, no consecutive errors, cycles arriving on time | Nothing |
A Stopped or long-silent worker is the usual explanation for data that has quietly stopped arriving, so this screen is the first place to look when a trend goes flat.
Investigating a problem
The View logs action on a row opens System Logs filtered to that worker. For a degraded or unhealthy worker it also pins the level to ERROR, so you land directly on the failures.
If the errors are not self-explanatory, turn on Debug for that worker, wait for a few cycles, read the extra detail in System Logs — then turn it off again. Debug logging is verbose and inflates the log table and disk usage.
Controlling a worker
Changes are written to the worker registry in the database and picked up by the worker on its next cycle. They do not require a restart, and they persist.
- Enabled — the toggle stops or starts the worker. Disabling an ingestion worker stops that data source; disabling the retention worker stops old data from being pruned.
- Debug — verbose logging for this worker only.
- Edit interval — the poll interval in seconds, between 1 and 3600. Shorter means fresher data and more load; longer means the opposite. Note that health flags a worker unhealthy after three missed intervals, so a very short interval on a slow worker will read as unhealthy.
Each change is confirmed by a snackbar, and a failed change is rolled back on screen from the server's actual state.
Disabling a worker is silent. Nothing else in the product warns that ingestion, retention or alarm evaluation has been switched off here — the only sign is a Disabled row on this screen and data that stops appearing.
Some of the same settings are also exposed as named entries on System Parameters; this screen is the direct, per-worker view.
Related
- System Logs — the entries these workers write
- System Parameters — retention windows and other worker-adjacent settings
- Backup and Restore — the
backupworker's own screen