public Task Consume(ConsumeContext <TestInfo> context) { var message = context.Message; if (context.GetRetryCount() < 5) { Console.WriteLine("测试第{0}次", context.GetRetryCount()); throw new Exception("测试异常重试!"); } return(Task.Run(() => { Console.WriteLine("time:{0},name:{1},age:{2}", DateTime.Now, message.Name, message.Age); })); }
public Task Consume(ConsumeContext <PingMessage> context) { Interlocked.Increment(ref Attempts); LastAttempt = context.GetRetryAttempt(); LastCount = context.GetRetryCount(); throw new IntentionalTestException(); }
public async Task Consume(ConsumeContext <ISimpleMessage> context) { var retryAttempt = context.GetRetryAttempt(); var retryCount = context.GetRetryCount(); var redeliveryCount = context.GetRedeliveryCount(); logger.LogInformation("Message: {0} CreationDateTime: {1}", context.Message.Message, context.Message.CreationDateTime); logger.LogInformation("RetryAttempt: {0} RetryCount: {1} RedeliveryCount: {2}", retryAttempt, retryCount, redeliveryCount); if (context.Message.Message.Contains("error", StringComparison.InvariantCultureIgnoreCase)) { throw new ApplicationException("Invalid message content!"); } }
public Task Consume(ConsumeContext <MyMessage> context) { return(Task.Run(() => { Console.WriteLine("次数:{0}", context.GetRetryCount()); if (DateTime.Now.Second % 2 == 0) { Console.WriteLine("Customer address was updated: {0},from comsume", context.Message.CustomerId); } else { Console.WriteLine("exception occured, time : {0}", DateTime.Now); throw new Exception(); } //context.Publish(new MyMessage() //{ // CustomerId = DateTime.Now.Second.ToString() //}); })); }
public async Task Consume(ConsumeContext <Fault <PayOrderEvent> > context) { var retryCount = context.GetRetryCount(); if (retryCount == 5) { if (EndpointConvention.TryGetDestinationAddress <PayOrderEvent>(out Uri endPointUrl)) { await context.Forward(endPointUrl); } } else { var exceptions = context.Message.Exceptions; foreach (var exceptionInfo in exceptions) { await Execute(context, exceptionInfo); } } }
public Task Consume(ConsumeContext <NotifySomethingHappened> context) { var id = $"[happeningId:{context.Message.HappeningId}]"; var hap = $"[whatHappened:{context.Message.WhatHappened}]"; var redC = $"[redeliveryCount:{context.GetRedeliveryCount()}]"; var retA = $"[retryAttempt:{context.GetRetryAttempt()}]"; var retC = $"[retryCount:{context.GetRetryCount()}]"; var ten = $"[tenantId:{context.Headers.Get<string>("tenant-id")}]"; _logger.LogInformation($"Consuming NotifySomethingHappened {id}{hap}{ten}{redC}{retA}{retC}"); if (string.IsNullOrWhiteSpace(context.Message.WhatHappened)) { throw new Exception("No happening"); } if (context.Message.WhatHappened.Contains("redeliver")) { throw new CanNotCurrentlyProcessException(context.Message.WhatHappened); } return(Task.CompletedTask); }
public async Task Consume(ConsumeContext <MyMessage> context) { Console.WriteLine($"Received message {context.Message.Xml} with retry count {context.GetRetryCount()} with correlationid {context.Headers.FirstOrDefault(x => x.Key == "CorrelationId").Value}"); var xmlSerializer = new XmlSerializer(typeof(Person)); var streamReader = new XmlTextReader(new MemoryStream(Encoding.UTF8.GetBytes(context.Message.Xml))); streamReader.Namespaces = false; var person = (Person)xmlSerializer.Deserialize(streamReader); Console.WriteLine($"First name is {person.FirstName}"); throw new Exception(); }