Interface IQuartzDashboardHubClient
The events the dashboard hub pushes to a connected browser.
public interface IQuartzDashboardHubClient
Remarks
Nothing outside this assembly calls this, and its DTOs are of no use to anyone else either, so it
would be internal if it could be. It cannot: SignalR reaches a typed client by emitting a proxy
into a dynamic assembly of its own, which no InternalsVisibleTo can name — a strong-named
assembly may only grant one to a friend it names by public key — and the proxy then fails to load
with "attempting to implement an inaccessible interface". QuartzDashboardHubClientProxyTest
is the guard.
The Task return types are dictated by SignalR for the same reason: the typed-client proxy only implements members returning Task or Task<TResult>.
Every payload leads with the SchedulerInstanceId of the node that raised the event. A browser
joins a group named after a scheduler, and in a cluster that group is fed by every node running that
scheduler — so without the id a live view cannot say which machine an event came from, which is what
https://github.com/quartznet/quartznet/issues/3422 reported. A pause and a resume get
a payload of their own for it rather than a JobKeyDto / TriggerKeyDto: those are keys,
used by IQuartzApiClient everywhere, and a key does not belong to a node.
Methods
JobExecuted(JobExecutionResultDto)
A job has finished, successfully, with an exception, or vetoed before it started.
Task JobExecuted(JobExecutionResultDto result)
Parameters
resultJobExecutionResultDto
Returns
JobExecuting(JobEventDto)
A job has begun running.
Task JobExecuting(JobEventDto jobEvent)
Parameters
jobEventJobEventDto
Returns
JobPaused(JobLifecycleDto)
A job has been paused, and with it every trigger that fires it.
Task JobPaused(JobLifecycleDto jobEvent)
Parameters
jobEventJobLifecycleDto
Returns
JobResumed(JobLifecycleDto)
A job has been resumed.
Task JobResumed(JobLifecycleDto jobEvent)
Parameters
jobEventJobLifecycleDto
Returns
SchedulerError(SchedulerErrorDto)
A scheduler reported an error it handled itself, such as a store operation it is retrying.
Task SchedulerError(SchedulerErrorDto schedulerError)
Parameters
schedulerErrorSchedulerErrorDto
Returns
SchedulerStateChanged(SchedulerStateDto)
One node's scheduler has entered a new lifecycle state.
Task SchedulerStateChanged(SchedulerStateDto state)
Parameters
stateSchedulerStateDto
Returns
TriggerCompleted(TriggerEventDto)
A trigger will not fire again: its schedule has run out.
Task TriggerCompleted(TriggerEventDto triggerEvent)
Parameters
triggerEventTriggerEventDto
Returns
TriggerFired(TriggerEventDto)
A trigger has fired.
Task TriggerFired(TriggerEventDto triggerEvent)
Parameters
triggerEventTriggerEventDto
Returns
TriggerMisfired(TriggerEventDto)
A trigger missed a firing and its misfire instruction has been applied.
Task TriggerMisfired(TriggerEventDto triggerEvent)
Parameters
triggerEventTriggerEventDto
Returns
TriggerPaused(TriggerLifecycleDto)
A trigger has been paused.
Task TriggerPaused(TriggerLifecycleDto triggerEvent)
Parameters
triggerEventTriggerLifecycleDto
Returns
TriggerResumed(TriggerLifecycleDto)
A trigger has been resumed.
Task TriggerResumed(TriggerLifecycleDto triggerEvent)
Parameters
triggerEventTriggerLifecycleDto