private WorkflowAction RestartWithDefaultValues(WorkflowItemEvent @event) { var action = RestartWorkflow(true); action.Input = WorkflowInput(ChildWorkflow(@event)); return(action); }
private WorkflowAction RescheduleImmediately(WorkflowItemEvent @event) { if (LatestEventId > 24000) { return(RestartWithDefaultValues(@event)); } return(Reschedule(@event)); }
private WorkflowAction RescheduleAfterTimeout(WorkflowItemEvent @event) { // Restart this workflow when total events in history are more than 24000. Amazon SWF allows 25000 events in workflow history. if (LatestEventId > 24000) { return(RestartWithDefaultValues(@event)); } return(Reschedule(@event).After(TimeSpan.FromHours(1))); }
public void Can_filter_out_all_events() { var allEvents = new WorkflowItemEvent[] { CreateCompletedEvent(), CreateFailedEvent() }; _workflowItem.Setup(w => w.AllEvents(true)).Returns(allEvents); Assert.That(_workflowItem.Object.Events <ActivityCompletedEvent>(true), Is.EqualTo(new [] { allEvents[0] })); Assert.That(_workflowItem.Object.Events(typeof(ActivityFailedEvent), true), Is.EqualTo(new[] { allEvents[1] })); }
public ITimerItem GetTimerOf(WorkflowItemEvent workflowItemEvent) { return(Timer(workflowItemEvent)); }
public IActivityItem GetActivityOf(WorkflowItemEvent workflowItemEvent) { return(Activity(workflowItemEvent)); }
public IChildWorkflowItem GetChildWorkflow(WorkflowItemEvent @event) { return(ChildWorkflow(@event)); }
public ILambdaItem GetLambda(WorkflowItemEvent @event) { return(Lambda(@event)); }