Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,10 @@ Run migrations during deployment or before starting workers against a new schema

Use `UsePostgres(postgres => postgres.DataSource = dataSource)` when an application needs to share or own a prebuilt `NpgsqlDataSource`; in that mode, the application also owns disposal.

The operational store keeps active jobs plus a bounded searchable terminal window. By default, background retention cleanup keeps completed jobs for 24 hours and failed or canceled jobs for 7 days, then deletes those terminal job rows and their tags, concurrency groups, and events. Configure `ShedduellerOptions.JobRetention` to change the windows, set a state retention to `null` to keep that state indefinitely, or set `Enabled = false` to disable cleanup.

Concurrency group limits use a persisted override over a code-defined default over the built-in default of `1`. Use `IConcurrencyGroupManager.SetDefaultLimitAsync(...)` from startup or deployment seeding code so dashboard edits survive restarts. Use `SetLimitAsync(...)` for an explicit live override and `ClearLimitOverrideAsync(...)` to fall back to the code default.

## Enqueue Jobs

Job methods return `Task` or `ValueTask` and receive the scheduler-owned `CancellationToken`. Use constructor-injected `ILogger<T>` for durable job logs, `Job.Context` when a handler needs the job id or attempt number, and scheduler-supplied `IProgress<decimal>` for durable progress updates.
Expand Down
4 changes: 4 additions & 0 deletions src/Sheddueller.Dashboard/Components/DashboardLayout.razor
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@
<span class="material-symbols-outlined" aria-hidden="true">analytics</span>
<span>Metrics</span>
</NavLink>
<NavLink class="sd-sidebar__link" href="settings">
<span class="material-symbols-outlined" aria-hidden="true">settings</span>
<span>Settings</span>
</NavLink>
</nav>

@if (CurrentRefresh is { } refresh)
Expand Down
Loading