Class DashboardAgentHubOptions
- Namespace
- Quartz
- Assembly
- Quartz.Dashboard.dll
How the dashboard accepts agents: schedulers in other processes that dial out to it rather than being dialled.
public sealed class DashboardAgentHubOptions
- Inheritance
-
DashboardAgentHubOptions
- Inherited Members
Remarks
Configured through AcceptAgents(Action<DashboardAgentHubOptions>?), which is also what maps the
agent hub at {DashboardPath}/agents. An agent authenticates with a bearer token from
Tokens, with the host's own authentication through AuthorizationPolicy,
or with both; a hub with neither refuses to start, as the dashboard's own pages do.
The dashboard judges an agent's liveness by its heartbeats: one that misses
OfflineAfterMissedHeartbeats of them in a row is listed as
Unknown with the time it was last heard from, and one that stays away
for ForgetAfter is forgotten. Everything else about an agent's scheduler is the agent's
own decision: the dashboard's ReadOnly hides its buttons, and
the agent's DashboardAgentOptions decide what it will do.
Properties
AuthorizationPolicy
The authorization policy the hub is held to, for an agent that authenticates with the host's own scheme — a client certificate, a managed identity, an OIDC client credential. Null — the default — applies none. With Tokens set as well, both apply.
public string? AuthorizationPolicy { get; set; }
Property Value
ForgetAfter
How long a disconnected agent stays listed — as Unknown, or as Shutdown after it said goodbye — before the dashboard forgets it. One hour by default.
public TimeSpan ForgetAfter { get; set; }
Property Value
HeartbeatInterval
How often the hub expects a heartbeat from each agent, which the agent adopts when it registers. Fifteen seconds by default.
public TimeSpan HeartbeatInterval { get; set; }
Property Value
IsJobTypeAllowed
Which job types the dashboard will send to an agent at all, on top of what the agent itself
accepts. Null — the default — sends every request on and leaves the decision to the agent's
DashboardAgentOptions.IsJobTypeAllowed, which refuses every type until it is set.
public Func<string, bool>? IsJobTypeAllowed { get; set; }
Property Value
Remarks
A narrowing on this side binds nothing on the worker — the agent's own predicate does — and exists so that an operator can stop a job type at the dashboard without touching every worker.
MaxMessageBytes
The most bytes one answer may carry, stated to the agent when it registers; the agent refuses a
larger page itself with 413, so a listing too big for the channel says to lower take
rather than tearing the connection down. Four megabytes by default.
public int MaxMessageBytes { get; set; }
Property Value
OfflineAfterMissedHeartbeats
How many heartbeats an agent may miss in a row before its scheduler is listed as Unknown. Three by default: 45 seconds of silence.
public int OfflineAfterMissedHeartbeats { get; set; }
Property Value
OperationTimeout
How long the dashboard waits for an agent to answer one request before it cancels the request on both sides. Thirty seconds by default.
public TimeSpan OperationTimeout { get; set; }
Property Value
Tokens
The bearer tokens the hub accepts, Quartz's own scheme. Set at least Primary to authenticate agents this way.
public AgentTokens Tokens { get; }