2017-11-25 6 views
0

ich diesen tutorial über RPC lese mit RabbitMQRabbitMQ: d.Ack() in der Nähe Kanal

scheint folgende Zeile den Warteschlangenkanal in der Nähe:

d.Ack() 

Könnte jemand erklären, was d.Ack() ist eigentlich für? Und warum passiert es, den Warteschlangenkanal zu schließen?

Antwort

1

Ack() quittiert eine Lieferung und sollte verwendet werden, wenn der Bestätigungsmodus manuell ist. Siehe auch Nack und Reject.

Von Consumer Acknowledgements and Publisher Confirms

auf dem Quittungsmodus Je verwendet wird, kann RabbitMQ betrachtet eine Nachricht erfolgreich entweder sofort geliefert werden, nachdem es (zu einem TCP-Socket geschrieben) ausgesendet ist, oder wenn ein explizites (“ Handbuch ") Client-Bestätigung wird empfangen.

Ack() könnten am Schließen des Kanals enden, da jede Nachricht als einmal nicht mehr anerkannt werden sollte, da sonst der Kanal aufgrund einer Ausnahme geschlossen wird:

AMQP basic acknowledgement:

Eine Nachricht muss nicht sein mehr als einmal bestätigt. Der empfangende Peer MUSS validieren, dass ein Nicht-Null-Liefertag sich auf eine ausgelieferte Nachricht bezieht, und eine Kanalausnahme auslösen, wenn dies nicht der Fall ist.

Verwandte Themen