Class TriggerFiredUpdate
- Namespace
- Quartz.Impl.AdoJobStore
- Assembly
- Quartz.dll
Every row change one trigger fire makes, gathered into one value so that ApplyTriggerFired(ConnectionAndTransactionHolder, TriggerFiredUpdate, CancellationToken) can issue them in as few round trips as the provider allows.
public sealed record TriggerFiredUpdate : IEquatable<TriggerFiredUpdate>
- Inheritance
-
TriggerFiredUpdate
- Implements
- Inherited Members
Remarks
The store decides all of this before a single statement goes out: it has read the trigger's stored
state and type, read the job, and applied the trigger's own Triggered transition in memory.
What is left is a set of writes with no read between them, which is exactly what a
DbBatch is for.
Properties
BlockJobTriggers
Whether the job's other triggers have to be moved into their blocked states, which they do for a job that disallows concurrent execution.
public required bool BlockJobTriggers { get; init; }
Property Value
ClearMisfireOriginalFireTime
Whether the trigger's recorded original fire time has to be cleared, which it does when this fire is the recovery of a misfire and the recorded time has now been reported to the job.
public required bool ClearMisfireOriginalFireTime { get; init; }
Property Value
JobDetail
The job the trigger fires. Its concurrency and recovery flags are copied onto the fired-trigger row, and it is what the trigger's persistence delegate is handed.
public required IJobDetail JobDetail { get; init; }
Property Value
NewState
The state to store on the trigger's own row.
public required StoredTriggerState NewState { get; init; }
Property Value
ScheduledFireTimeUtc
The time the fire was scheduled for, which is the trigger's next fire time as it stood before the fire advanced it.
public required DateTimeOffset? ScheduledFireTimeUtc { get; init; }
Property Value
Remarks
Carried explicitly rather than read off Trigger, because by the time this update
is applied the trigger has already moved on to its following fire time. That used to be
expressed as an ordering constraint — the fired-trigger row had to be written before
Triggered ran — which is precisely the kind of constraint a batch cannot honour.
StoredTriggerType
The type discriminator the trigger's row holds, read before the fire.
public required string StoredTriggerType { get; init; }
Property Value
Remarks
Passed rather than read again: knowing it is the only reason the write path used to issue a
SELECT TRIGGER_TYPE of its own. It is compared with the discriminator of the delegate
that handles the trigger now, and a mismatch — which the fire path cannot produce, but a
subclass firing a rebuilt trigger could — falls back to moving the row between type tables.
Trigger
The trigger that fired, already advanced past the fire by Triggered(ICalendar?).
public required IOperableTrigger Trigger { get; init; }