Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
 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;
            }
        }