Je suis en train de mettre en œuvre modèle de demande de réponse RabbitMQ.RabbitMQ modèle Demande-réponse - consommateur cesse d'écouter la queue après traitement
Mon objectif est qu'il y aurait toujours un consommateur qui écoute une file d'attente et les réponses aux messages.
J'ai donc mis le serveur par:
var consumer = new EventingBasicConsumer(channel);
channel.BasicConsume(queue: 'listensToThisQueue',
noAck: true,
consumer: consumer);
consumer.Received += (model, ea) =>
{
// Replying to client
channel.BasicPublish(exchange: '',
routingKey: routingKey,
basicProperties: props,
body: message);
// Basic ack
channel.BasicAck(deliveryTag: incomingDeliveryTag,
multiple: false);
}
Tout fonctionne vraiment bien:
- client envoie premier message
- serveur recevoir et répondre
- client reçoit le message
Le seul problème est que, après finshing méthode Received
(Après l'exécution BasicAck
) - Consommateur cesse écouter listenToQueue
(je vois en fait 0 les consommateurs sur cette file d'attente dans la gestion de l'interface utilisateur).
Pourquoi est-ce?
Donc en fait je peux éliminer « BasicAck » et il travaillerais – ohadinho