public TriggerFiredBundle TriggerFired(Trigger trigger) { lock (_triggerLock) { TriggerWrapper tw = _triggersDictionary[trigger.Name] as TriggerWrapper; // was the trigger deleted since being acquired? if (tw == null || tw.Trigger == null) { return(null); } // was the trigger completed since being acquired? if (tw.State == InternalTriggerState.Complete) { return(null); } // was the trigger paused since being acquired? if (tw.State == InternalTriggerState.Paused) { return(null); } // was the trigger blocked since being acquired? if (tw.State == InternalTriggerState.Blocked) { return(null); } // was the trigger paused and blocked since being acquired? if (tw.State == InternalTriggerState.PausedAndBlocked) { return(null); } NullableDateTime prevFireTime = trigger.GetPreviousFireTimeUtc(); // in case trigger was replaced between acquiring and firering _timeTriggers.Remove(tw); trigger.Triggered(); //tw.state = TriggerWrapper.StateExecuting; tw.State = InternalTriggerState.Waiting; IScheduledJob job = RetrieveJob(trigger.JobName); TriggerFiredBundle bndle = new TriggerFiredBundle(job, trigger, false, DateTime.UtcNow, trigger.GetPreviousFireTimeUtc(), prevFireTime, trigger.GetNextFireTimeUtc()); NullableDateTime d = tw.Trigger.GetNextFireTimeUtc(); if (d.HasValue) { lock (_triggerLock) { _timeTriggers.Add(tw); } } return(bndle); } }
public TriggerFiredBundle TriggerFired(Trigger trigger) { lock (this._triggerLock) { TriggerWrapper wrapper = this._triggersDictionary[trigger.Name] as TriggerWrapper; if ((wrapper == null) || (wrapper.Trigger == null)) { return(null); } if (wrapper.State == InternalTriggerState.Complete) { return(null); } if (wrapper.State == InternalTriggerState.Paused) { return(null); } if (wrapper.State == InternalTriggerState.Blocked) { return(null); } if (wrapper.State == InternalTriggerState.PausedAndBlocked) { return(null); } DateTime?previousFireTimeUtc = trigger.GetPreviousFireTimeUtc(); this._timeTriggers.Remove(wrapper); trigger.Triggered(); wrapper.State = InternalTriggerState.Waiting; TriggerFiredBundle bundle = new TriggerFiredBundle(this.RetrieveJob(trigger.JobName), trigger, false, new DateTime?(DateTime.UtcNow), trigger.GetPreviousFireTimeUtc(), previousFireTimeUtc, trigger.GetNextFireTimeUtc()); if (wrapper.Trigger.GetNextFireTimeUtc().HasValue) { lock (this._triggerLock) { this._timeTriggers.Add(wrapper); } } return(bundle); } }
public TriggerFiredBundle TriggerFired(Trigger trigger) { lock (_triggerLock) { TriggerWrapper tw = _triggersDictionary[trigger.Name] as TriggerWrapper; // was the trigger deleted since being acquired? if (tw == null || tw.Trigger == null) return null; // was the trigger completed since being acquired? if (tw.State == InternalTriggerState.Complete) return null; // was the trigger paused since being acquired? if (tw.State == InternalTriggerState.Paused) return null; // was the trigger blocked since being acquired? if (tw.State == InternalTriggerState.Blocked) return null; // was the trigger paused and blocked since being acquired? if (tw.State == InternalTriggerState.PausedAndBlocked) return null; NullableDateTime prevFireTime = trigger.GetPreviousFireTimeUtc(); // in case trigger was replaced between acquiring and firering _timeTriggers.Remove(tw); trigger.Triggered(); //tw.state = TriggerWrapper.StateExecuting; tw.State = InternalTriggerState.Waiting; IScheduledJob job = RetrieveJob(trigger.JobName); TriggerFiredBundle bndle = new TriggerFiredBundle(job, trigger, false, DateTime.UtcNow, trigger.GetPreviousFireTimeUtc(), prevFireTime, trigger.GetNextFireTimeUtc()); NullableDateTime d = tw.Trigger.GetNextFireTimeUtc(); if (d.HasValue) { lock (_triggerLock) { _timeTriggers.Add(tw); } } return bndle; } }