Esempio n. 1
0
 internal RetentionScheduler(string backupPolicyName, RetentionPolicy retentionPolicy, Action <string> callback)
 {
     this.backupPolicyName         = backupPolicyName;
     this.retentionTimer           = new RetentionTimer(this.timerCallback, retentionPolicy);
     this.retentionRescheduleTimer = new RescheduleTimer(this.timerCallback, "RetentionRescheduler");
     this.callback = callback;
 }
Esempio n. 2
0
        public override IEnumerable <WorkflowDecision> CancelDecisions()
        {
            var lastEvent        = LastEvent(true);
            var latestTimerEvent = WorkflowHistoryEvents.LastTimerEvent(RescheduleTimer, true);

            if (latestTimerEvent != null && lastEvent == latestTimerEvent)
            {
                return(RescheduleTimer.CancelDecisions());
            }

            return(new[] { new CancelRequestWorkflowDecision(ScheduleId, (lastEvent as ChildWorkflowEvent)?.RunId), });
        }
Esempio n. 3
0
        public override IEnumerable <WorkflowDecision> CancelDecisions()
        {
            var lastEvent        = LastEvent(true);
            var latestTimerEvent = WorkflowHistoryEvents.LastTimerEvent(RescheduleTimer, true);

            if (latestTimerEvent != null && lastEvent == latestTimerEvent)
            {
                return(RescheduleTimer.CancelDecisions());
            }

            return(new [] { new CancelActivityDecision(ScheduleId) });
        }
Esempio n. 4
0
        public override WorkflowAction  Fired(TimerFiredEvent timerFiredEvent)
        {
            switch (timerFiredEvent.TimerType)
            {
            case TimerType.WorkflowItem:
                return(_firedAction(timerFiredEvent));

            case TimerType.Reschedule:
                return(RescheduleTimer._firedAction(timerFiredEvent));

            default:
                return(base.Fired(timerFiredEvent));
            }
        }
Esempio n. 5
0
 public override IEnumerable <WorkflowDecision> RescheduleDecisions(TimeSpan timeout)
 {
     RescheduleTimer.FireAfter(timeout);
     return(RescheduleTimer.ScheduleDecisions());
 }