Table of Contents

Interface IQuartzDashboardHubClient

Namespace
Quartz.Dashboard.Hubs
Assembly
Quartz.Dashboard.dll

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

result JobExecutionResultDto

Returns

Task

JobExecuting(JobEventDto)

A job has begun running.

Task JobExecuting(JobEventDto jobEvent)

Parameters

jobEvent JobEventDto

Returns

Task

JobPaused(JobLifecycleDto)

A job has been paused, and with it every trigger that fires it.

Task JobPaused(JobLifecycleDto jobEvent)

Parameters

jobEvent JobLifecycleDto

Returns

Task

JobResumed(JobLifecycleDto)

A job has been resumed.

Task JobResumed(JobLifecycleDto jobEvent)

Parameters

jobEvent JobLifecycleDto

Returns

Task

SchedulerError(SchedulerErrorDto)

A scheduler reported an error it handled itself, such as a store operation it is retrying.

Task SchedulerError(SchedulerErrorDto schedulerError)

Parameters

schedulerError SchedulerErrorDto

Returns

Task

SchedulerStateChanged(SchedulerStateDto)

One node's scheduler has entered a new lifecycle state.

Task SchedulerStateChanged(SchedulerStateDto state)

Parameters

state SchedulerStateDto

Returns

Task

TriggerCompleted(TriggerEventDto)

A trigger will not fire again: its schedule has run out.

Task TriggerCompleted(TriggerEventDto triggerEvent)

Parameters

triggerEvent TriggerEventDto

Returns

Task

TriggerFired(TriggerEventDto)

A trigger has fired.

Task TriggerFired(TriggerEventDto triggerEvent)

Parameters

triggerEvent TriggerEventDto

Returns

Task

TriggerMisfired(TriggerEventDto)

A trigger missed a firing and its misfire instruction has been applied.

Task TriggerMisfired(TriggerEventDto triggerEvent)

Parameters

triggerEvent TriggerEventDto

Returns

Task

TriggerPaused(TriggerLifecycleDto)

A trigger has been paused.

Task TriggerPaused(TriggerLifecycleDto triggerEvent)

Parameters

triggerEvent TriggerLifecycleDto

Returns

Task

TriggerResumed(TriggerLifecycleDto)

A trigger has been resumed.

Task TriggerResumed(TriggerLifecycleDto triggerEvent)

Parameters

triggerEvent TriggerLifecycleDto

Returns

Task