Table of Contents

Class ExecutionLimitsDto

Namespace
Quartz.Dashboard.Services
Assembly
Quartz.Dashboard.dll

The execution limits a scheduler is running with, keyed by the spelling configuration and the HTTP API use for a group: _ for the bucket of triggers that carry no execution group, * for the catch-all applied to groups with no limit of their own, and otherwise the group's name.

public sealed record ExecutionLimitsDto : IEquatable<ExecutionLimitsDto>
Inheritance
ExecutionLimitsDto
Implements
Inherited Members

Remarks

The keys are the configuration spellings rather than display text because the overview joins them to what is in flight, and a firing carries a group name or nothing at all. Rendering ExecutionGroupScope's three cases as words is the panel's job.

Constructors

ExecutionLimitsDto(Dictionary<string, DashboardExecutionLimit>, bool, bool)

The execution limits a scheduler is running with, keyed by the spelling configuration and the HTTP API use for a group: _ for the bucket of triggers that carry no execution group, * for the catch-all applied to groups with no limit of their own, and otherwise the group's name.

public ExecutionLimitsDto(Dictionary<string, DashboardExecutionLimit> Limits, bool UsesTriggerGroupWhenUnset = false, bool CanReport = true)

Parameters

Limits Dictionary<string, DashboardExecutionLimit>

Each group's limit, with the scope it is counted in. Empty when the scheduler limits nothing, which leaves every group unlimited.

UsesTriggerGroupWhenUnset bool

Whether a trigger that carries no execution group is limited as though it belonged to a group named after its own trigger group — UsesTriggerGroupWhenUnset. The overview applies the same derivation when it counts what is in flight, or its counts and the scheduler's would key the same firing differently.

CanReport bool

Whether the scheduler could answer at all. false is not "nothing is limited": it is "this scheduler does not implement execution limits", and the two must not be shown alike.

Remarks

The keys are the configuration spellings rather than display text because the overview joins them to what is in flight, and a firing carries a group name or nothing at all. Rendering ExecutionGroupScope's three cases as words is the panel's job.

Properties

CanReport

Whether the scheduler could answer at all. false is not "nothing is limited": it is "this scheduler does not implement execution limits", and the two must not be shown alike.

public bool CanReport { get; init; }

Property Value

bool

CannotReport

The answer for a scheduler whose implementation refuses the question — an IScheduler of an application's own may throw NotSupportedException rather than implement limits.

public static ExecutionLimitsDto CannotReport { get; }

Property Value

ExecutionLimitsDto

Limits

Each group's limit, with the scope it is counted in. Empty when the scheduler limits nothing, which leaves every group unlimited.

public Dictionary<string, DashboardExecutionLimit> Limits { get; init; }

Property Value

Dictionary<string, DashboardExecutionLimit>

UsesTriggerGroupWhenUnset

Whether a trigger that carries no execution group is limited as though it belonged to a group named after its own trigger group — UsesTriggerGroupWhenUnset. The overview applies the same derivation when it counts what is in flight, or its counts and the scheduler's would key the same firing differently.

public bool UsesTriggerGroupWhenUnset { get; init; }

Property Value

bool