Я хочу обработать тему при запуске приложения, используя Confluent dotnet client .Предположим следующий пример:
while (true)
{
try
{
var cr = c.Consume();
Console.WriteLine($"Consumed message '{cr.Value}' at: '{cr.TopicPartitionOffset}'.");
}
catch (ConsumeException e)
{
Console.WriteLine($"Error occured: {e.Error.Reason}");
}
}
Когда в Kafka нет нового сообщения, c.Consume будет заблокирован.Поскольку я хочу использовать его для запуска приложения (например, для разогрева кэша), я хочу продолжить свой код, когда обнаружил, что нового сообщения нет.
Я знаю, что существует перегрузка для установки тайм-аута, например c.Consume(timeout)
, но проблема с этим подходом состоит в том, что если у вас есть сообщение в вашей теме, и время чтения сообщения было больше, чем ваш тайм-аут, выполучить нулевой вывод, который не желателен.