uTPro.Feature.JobMonitor
18.2.1
See the version list below for details.
dotnet add package uTPro.Feature.JobMonitor --version 18.2.1
NuGet\Install-Package uTPro.Feature.JobMonitor -Version 18.2.1
<PackageReference Include="uTPro.Feature.JobMonitor" Version="18.2.1" />
<PackageVersion Include="uTPro.Feature.JobMonitor" Version="18.2.1" />
<PackageReference Include="uTPro.Feature.JobMonitor" />
paket add uTPro.Feature.JobMonitor --version 18.2.1
#r "nuget: uTPro.Feature.JobMonitor, 18.2.1"
#:package uTPro.Feature.JobMonitor@18.2.1
#addin nuget:?package=uTPro.Feature.JobMonitor&version=18.2.1
#tool nuget:?package=uTPro.Feature.JobMonitor&version=18.2.1
uTPro Background Jobs Monitor for Umbraco
Documentation: https://docs.utpro.dev/uTPro.Feature.JobMonitor/
A read-and-trigger management UI for Umbraco recurring background jobs. Surfaces every recurring job registered in your site under a Settings dashboard — with timing parameters, execution telemetry the CMS does not persist natively, an estimated next run, server-role awareness, and an authorized on-demand Run now action.
Works with Umbraco 16, 17 and 18 (multi-targeted net9.0 / net10.0).
Optional durable telemetry runs on SQL Server, SQLite and PostgreSQL.

Features
- Auto-discovery of every recurring background job — no per-job wiring.
- Modern jobs implementing
IRecurringBackgroundJob(full support). - Legacy jobs deriving from
RecurringHostedServiceBase(listed with limited support). - Plain
IHostedServiceregistrations are excluded.
- Modern jobs implementing
- Timing parameters per job: period, delay and server roles (human-readable durations).
- Execution telemetry the CMS does not persist natively: last run start, duration and outcome.
- Estimated next run = most recent run start + period (clearly labelled as an estimate).
- Manual trigger ("Run now") for modern jobs — runs off the request thread, guards against overlap, honours the node's server role, and records the initiating backoffice user.
- Load-balancing aware — shows the current node's server role and warns when scheduled jobs do not run on the node, or when history is in-memory / per-node only.
- Configurable storage — in-memory ring buffer (default) or a durable database table that survives restarts and is shared across nodes.
- Secure by default — every endpoint requires access to the Settings section.
Quick Start
dotnet add package uTPro.Feature.JobMonitor
Start Umbraco and open Settings → Background Jobs Monitor. Your recurring jobs appear automatically — no configuration or per-job registration required.
| Umbraco | .NET | Target |
|---|---|---|
| 16 | .NET 9 | net9.0 |
| 17 & 18 | .NET 10 | net10.0 |
Configuration
All settings are optional, under uTPro:Feature:JobMonitor in appsettings.json:
{
"uTPro": {
"Feature": {
"JobMonitor": {
"Storage": "InMemory",
"HistoryCapacity": 50,
"DiscoveryCacheSeconds": 30
}
}
}
}
| Key | Default | Description |
|---|---|---|
Storage |
InMemory |
InMemory = per-process ring buffer (resets on restart, per-node). Durable = persisted to the Umbraco database (survives restarts, shared across load-balanced nodes). |
HistoryCapacity |
50 |
Max execution records retained per job. |
DiscoveryCacheSeconds |
30 |
How long a discovery result is cached before re-enumeration. 0 disables caching. |
See Configuration and Telemetry & Storage.
Database support (durable storage)
When Storage is Durable, a state-keyed migration creates the uTProJobExecution table on
startup (once per database). Data access uses NPoco strongly-typed queries with provider-quoted
identifiers, so it runs on SQL Server, SQLite and PostgreSQL — the same cross-database approach
used by uTPro.Feature.AuditLog and uTPro.Feature.SimpleFormBuilder. When durable storage is
disabled (the default) the package touches no schema.
Documentation
| Guide | What's inside |
|---|---|
| Getting Started | Install, compatibility, backoffice location, what each column means |
| Configuration | All appsettings keys and their effects |
| Telemetry & Storage | In-memory vs durable, the uTProJobExecution table, PostgreSQL, load-balancing |
| Manual Trigger (Run now) | How Run now works, overlap/role guards, idempotency caution |
| Security & Permissions | Authorization model, what is read-only, accountability |
| Reference | Project structure, API endpoints, discovery internals, database schema |
License & Author
By T4VN. Free to use — including in commercial projects — under a proprietary End User License Agreement. The package ships as a compiled NuGet package; the source is not published, and modifying, reverse engineering, or redistributing the package is not permitted. See LICENSE.txt for full terms. Issues welcome on the GitHub repository.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Umbraco.Cms.Api.Management (>= 18.0.0 && < 19.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
v17.2.1 / v18.2.1: Version lines now follow the Umbraco major (17.x for Umbraco 17, 18.x for Umbraco 18) and each line's Umbraco.Cms.Api.Management dependency is boxed to a single major - [17.0.0, 18.0.0) and [18.0.0, 19.0.0) respectively. Previously a single net10.0 build declared [17.0.0, 19.0.0), which let a host pinned to Umbraco 17 be pulled up to Umbraco 18 whenever another package in the project graph demanded 18. Boxing the range per major prevents that cross-major drift: installing into an Umbraco 17 site always resolves the 17.x line and never forces an 18 upgrade. Umbraco 16 (the old net9.0 target) is no longer supported. No functional, API, UI or database changes - this is a packaging/compatibility change only. v1.0.1: Fixed the backoffice package manifest display name (removed stray zero-width characters) so it lists correctly as "uTPro Background Jobs Monitor" in the Installed packages view. No code or API changes. v1.0.0: Initial release. Background Jobs Monitor dashboard for Umbraco 16/17/18 (multi-target net9.0/net10.0). Discovers modern IRecurringBackgroundJob implementations and legacy RecurringHostedServiceBase jobs, displays timing parameters and server-role behaviour, captures per-job execution telemetry, estimates the next run, and provides an authorized, overlap-safe manual trigger. Read-only by default; the only write is the manual "Run now" action. Telemetry storage is configurable via uTPro:Feature:JobMonitor: in-memory ring buffer (default) or a durable database table (uTProJobExecution) that survives restarts and is shared across load-balanced nodes, working on SQL Server, SQLite and PostgreSQL. Also configurable: history capacity and discovery cache duration.