У меня есть метод приемника в веб-приложении ASP.NET Core:
public void ReceiveMessage()
{
using (var connection = CreateConnection())
using (var channel = connection.CreateModel())
{
channel.QueueDeclare(queue: "QueueName",durable: false,exclusive: false,autoDelete: false,arguments: null);
channel.BasicQos(prefetchSize: 0, prefetchCount: 1, global: false);
var consumer = new EventingBasicConsumer(channel);
consumer.Received += (model, ea) =>
{
//Do something
channel.BasicAck(deliveryTag: ea.DeliveryTag,multiple: false);
};
channel.BasicConsume(queue: "QueueName",autoAck: false,consumer: consumer);
//BAD!!!
while (true)
{
}
}
}
Вы заметите, что я использую while (true), которое плохо пахнет.Мне в основном нужно сохранить этот метод живым и удивляться, как другие люди сделали это?
Этот метод должен оставаться в живых все время и автоматически обрабатывать сообщения 1 на 1