2016-07-19 42 views
0

我將RMQ整合到我的項目中,以實現工作隊列。RabbitMQ no ack usage

我明白如果模塊成功,它會調用ack方法,以便RMQ知道它。

失敗怎麼樣?

我讀到,只有當連接或通道關閉時,RMQ知道我們失敗了,並將消息重新推送到隊列中。

但是,無論我有沒有內部錯誤,我都想讓RMQ重新推送消息,無論我是否崩潰(例如未能插入數據庫,我會優雅地處理,而不會崩潰,但是我希望整個工作要重新嘗試)。

我是否必須再次手動關閉並再次打開通道才能觸發該通道?

回答

1

您可以使用否定ACK或拒絕。信息here

的AMQP規範定義了basic.reject方法,它允許 客戶拒絕個別,傳遞的消息,指示所述 經紀人要麼丟棄它們或它們重新排隊。

+0

錯過了。謝謝。 – Jjang

+0

@Jjang歡迎您! – cantSleepNow