uTPro.Feature.JobMonitor 1.0.1

dotnet add package uTPro.Feature.JobMonitor --version 1.0.1
                    
NuGet\Install-Package uTPro.Feature.JobMonitor -Version 1.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="uTPro.Feature.JobMonitor" Version="1.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="uTPro.Feature.JobMonitor" Version="1.0.1" />
                    
Directory.Packages.props
<PackageReference Include="uTPro.Feature.JobMonitor" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add uTPro.Feature.JobMonitor --version 1.0.1
                    
#r "nuget: uTPro.Feature.JobMonitor, 1.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package uTPro.Feature.JobMonitor@1.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=uTPro.Feature.JobMonitor&version=1.0.1
                    
Install as a Cake Addin
#tool nuget:?package=uTPro.Feature.JobMonitor&version=1.0.1
                    
Install as a Cake Tool

uTPro Background Jobs Monitor for Umbraco

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.

NuGet NuGet Downloads Umbraco Marketplace Umbraco 16+ License: MIT

Background Jobs Monitor dashboard


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 IHostedService registrations are excluded.
  • 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
Publishing Release checklist for NuGet and the Umbraco Marketplace

Building from source

dotnet build uTPro.Feature.JobMonitor.sln

src/uTPro.Feature.JobMonitor.TestSite is a runnable Umbraco 18 site (SQLite, unattended install) that registers example modern / legacy / plain services to exercise the dashboard.

Produce a NuGet package deterministically:

pwsh ./pack.ps1

License & Author

MIT © T4VN. Issues and contributions welcome on the GitHub repository.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.1 68 7/17/2026
1.0.0 105 7/14/2026

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.