protected override void ConfigureActiveMqReceiveEndpoint(IActiveMqReceiveEndpointConfigurator configurator) { _count = 0; _received = GetTask <ConsumeContext <PingMessage> >(); configurator.Handler <PingMessage>(context => { if (_timer == null) { _timer = Stopwatch.StartNew(); } if (_count++ < 2) { Console.WriteLine("{0} now is not a good time", DateTime.UtcNow); throw new IntentionalTestException("I'm so not ready for this jelly."); } _timer.Stop(); Console.WriteLine("{0} okay, now is good (retried {1} times)", DateTime.UtcNow, context.Headers.Get("MT-Redelivery-Count", default(int?))); // okay, ready. _receivedTimeSpan = _timer.Elapsed; _received.TrySetResult(context); return(TaskUtil.Completed); }, x => x.UseDelayedRedelivery(r => r.Intervals(1000, 2000))); }
protected override void ConfigureActiveMqReceiveEndpoint(IActiveMqReceiveEndpointConfigurator configurator) { _count = 0; _received = GetTask <ConsumeContext <PingMessage> >(); configurator.Handler <PingMessage>(async context => { if (_timer == null) { _timer = Stopwatch.StartNew(); } if (_count++ < 2) { Console.WriteLine("{0} now is not a good time", DateTime.UtcNow); await context.Defer(TimeSpan.FromMilliseconds(1000), (consumeContext, sendContext) => { _hit = true; }); return; } _timer.Stop(); Console.WriteLine("{0} okay, now is good (retried {1} times)", DateTime.UtcNow, context.Headers.Get("MT-Redelivery-Count", default(int?))); // okay, ready. _receivedTimeSpan = _timer.Elapsed; _received.TrySetResult(context); }); }
protected override void ConfigureActiveMqReceiveEndpoint(IActiveMqReceiveEndpointConfigurator configurator) { base.ConfigureActiveMqReceiveEndpoint(configurator); _consumer = new ReconnectConsumer(TestTimeout); _consumer.Configure(configurator); configurator.Handler <PingMessage>(context => context.RespondAsync(new PongMessage(context.Message.CorrelationId))); }
protected override void ConfigureActiveMqReceiveEndpoint(IActiveMqReceiveEndpointConfigurator configurator) { _count = 0; configurator.Handler <PingMessage>(context => { Interlocked.Increment(ref _count); throw new IntentionalTestException(); }, x => x.UseDelayedRedelivery(r => r.Intervals(100, 200))); }