Class ExecutionLimitsDto
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
LimitsDictionary<string, DashboardExecutionLimit>Each group's limit, with the scope it is counted in. Empty when the scheduler limits nothing, which leaves every group unlimited.
UsesTriggerGroupWhenUnsetboolWhether 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.
CanReportboolWhether 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
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
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
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; }