public static void Handler(KafkaRetry <Input> input) { var refType = input.RefType; var retryCount = input.RetryCount; switch (refType) { case RefType.Retry1: { if (retryCount > 0) { if (DateTime.Now >= input.RetryOn) { System.Console.WriteLine($"Got message from Retry Kafka: {input.Request.Message}"); var extraData = JsonConvert.DeserializeObject <Retry1Extra>(input.ExtraData); System.Console.WriteLine( $"Got extra data from Retry Kafka. Extra1:{extraData.Extra1}, Extra2:{extraData.Extra2}"); } else { System.Console.WriteLine($"Resend to Queue {DateTime.Now}"); Producer.SendMessage(input); } } break; } case RefType.Retry2: { // TODO Implement type 2 break; } } }
public static void Handler(Input input) { System.Console.WriteLine($"Got message from Kafka: {input.Message}"); if (input.Message == "Retry") { var extraData = new Retry1Extra { Extra1 = "Extra1", Extra2 = "Extra2" }; var message = new KafkaRetry <Input> { RetryOn = DateTime.Now.AddSeconds(10), RetryCount = 1, Request = input, RefType = RefType.Retry1, ExtraData = JsonConvert.SerializeObject(extraData) }; Producer.SendMessage(message); } }