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; }
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), }); }
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) }); }
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)); } }
public override IEnumerable <WorkflowDecision> RescheduleDecisions(TimeSpan timeout) { RescheduleTimer.FireAfter(timeout); return(RescheduleTimer.ScheduleDecisions()); }