Class ClusteringOptions
- Namespace
- Quartz
- Assembly
- Quartz.dll
Strongly typed configuration for taking part in a cluster.
public sealed class ClusteringOptions
- Inheritance
-
ClusteringOptions
- Inherited Members
Remarks
Binds from the Clustering sub-section of the job store's configuration, and is where
clustering is said once. The ADO.NET job store does not repeat these settings: whether a scheduler
is clustered is Enabled, and IJobStore.Clustered reports it rather than
offering a second place to set it.
The equivalent flat keys are quartz.jobStore.clustered,
quartz.jobStore.clusterCheckinInterval and
quartz.jobStore.clusterCheckinMisfireThreshold.
Properties
CheckinInterval
How often this scheduler records that it is still alive.
public TimeSpan CheckinInterval { get; set; }
Property Value
Remarks
Shorter intervals detect a failed node sooner at the cost of more database traffic.
CheckinMisfireThreshold
How long past a missed check-in another scheduler waits before treating this one as dead and recovering its triggers.
public TimeSpan CheckinMisfireThreshold { get; set; }
Property Value
Remarks
It is also the window this scheduler's own check-in loop retries a failed check-in inside: a check-in that fails is attempted again with half of what is left of the interval plus this threshold, never later than DbRetryInterval, so a database blip shorter than the threshold does not get the node written off. Only once the window has closed does the loop back off DbRetryInterval between attempts.
Raise it past the environment's worst pause — a garbage collection, a virtual machine migration, a database failover — rather than its worst clock error: a genuinely dead node's work waits interval plus threshold to be taken over, and a live node that misses that window is recovered while it is still working.
Enabled
Whether this scheduler takes part in a cluster with every other scheduler sharing its database.
public bool Enabled { get; set; }
Property Value
Remarks
UsePersistentStore(store => store.UseClustering()) turns this on, so code-first
configuration never sets it directly. It is settable so that a scheduler configured entirely from
a file can turn clustering on the same way it turns anything else on.