public void FailedCallbackFires() { List<int> order = new List<int> { 1, 2, 3, 4, 5 }; List<int> errors = new List<int>(); ThrottledProcessor<int> queue = new ThrottledProcessor<int>( 100, (int value) => { throw new InvalidOperationException("This is the message"); }, (int value) => Assert.Fail("The success path should never be called"), (int value, Exception ex) => { Assert.AreEqual("This is the message", ex.Message); errors.Add(value); }); foreach (int i in order) { queue.Add(i); } while (queue.Length > 0) { Thread.Sleep(100); } foreach (int expected in order) { int actual = errors.First(); errors.RemoveAt(0); Assert.AreEqual(expected, actual, "The items were failed in the wrong order"); } }
public void TimerFires() { Dictionary<int, DateTime> calls = new Dictionary<int, DateTime>(); List<int> order = new List<int> { 1, 2, 3, 4, 5 }; ThrottledProcessor<int> queue = new ThrottledProcessor<int>( 100, (int value) => calls.Add(value, DateTime.UtcNow), (int value) => Assert.IsTrue(calls.ContainsKey(value)), (int value, Exception ex) => Assert.Fail("Failed during queue callback")); foreach (int i in order) { queue.Add(i); } while (queue.Length > 0) { Thread.Sleep(100); } DateTime last = DateTime.MinValue; foreach (int expected in order) { Assert.IsTrue(calls.ContainsKey(expected)); Assert.IsTrue(last < calls[expected]); last = calls[expected]; } }
public void FailedCallbackFires() { List <int> order = new List <int> { 1, 2, 3, 4, 5 }; List <int> errors = new List <int>(); ThrottledProcessor <int> queue = new ThrottledProcessor <int>( 100, (int value) => { throw new InvalidOperationException("This is the message"); }, (int value) => Assert.Fail("The success path should never be called"), (int value, Exception ex) => { Assert.AreEqual("This is the message", ex.Message); errors.Add(value); }); foreach (int i in order) { queue.Add(i); } while (queue.Length > 0) { Thread.Sleep(100); } foreach (int expected in order) { int actual = errors.First(); errors.RemoveAt(0); Assert.AreEqual(expected, actual, "The items were failed in the wrong order"); } }
public void TimerFires() { Dictionary <int, DateTime> calls = new Dictionary <int, DateTime>(); List <int> order = new List <int> { 1, 2, 3, 4, 5 }; ThrottledProcessor <int> queue = new ThrottledProcessor <int>( 100, (int value) => calls.Add(value, DateTime.UtcNow), (int value) => Assert.IsTrue(calls.ContainsKey(value)), (int value, Exception ex) => Assert.Fail("Failed during queue callback")); foreach (int i in order) { queue.Add(i); } while (queue.Length > 0) { Thread.Sleep(100); } DateTime last = DateTime.MinValue; foreach (int expected in order) { Assert.IsTrue(calls.ContainsKey(expected)); Assert.IsTrue(last < calls[expected]); last = calls[expected]; } }
public SmsCommandProcessor() { _messageProcessor = new ThrottledProcessor <IncomingSmsMessage>( 100, ProcessReceivedMessage, ReceivedMessageComplete, ReceivedMessageFailed); }
public SmsCommandProcessor() { _messageProcessor = new ThrottledProcessor<IncomingSmsMessage>( 100, ProcessReceivedMessage, ReceivedMessageComplete, ReceivedMessageFailed); }
public SmsSenderQueue() { _delay = _transport.DelayMs; _processor = new ThrottledProcessor<SmsSenderMessage>( _delay, SendMessage, SendComplete, SendException); }
public SmsSenderQueue() { _delay = _transport.DelayMs; _processor = new ThrottledProcessor <SmsSenderMessage>( _delay, SendMessage, SendComplete, SendException); }
public static async Task TestThrottledProcessor() { var lambda = new DotStep.Common.StateMachines.ThrottledProcessor.EnsureAccountAndRegionAreSet(); var type = lambda.GetType(); var context = new ThrottledProcessor.Context { StateMachineName = "QueueToStepFunction-mIdf0XJZ3l94", JobQueueName = "tiger-item", JobProcessingParallelSize = 10, MessageProcessorName = "write-event-test", MessageProcessorType = "Lambda" }; var engine = new StateMachineEngine <ThrottledProcessor, ThrottledProcessor.Context>(context); var sm = new ThrottledProcessor(); var description = sm.Describe("region", "account"); await engine.Start(); }