2016-12-02 90 views
1

在我們的應用中使用RabbitMq 有幾百個消息在時間上積累,處於未排隊狀態的幾個隊列,而TTL由於多次意外關閉而不工作聽衆沒有活着。如何推送消息從未準備就緒,rabbitmq

現在出於商業原因,我不能只是清空隊列。 我想手動推送未使用的消息到就緒狀態。

有沒有?

謝謝!

回答

1

有2種方式,從unack'd郵件移動到準備:

1)從消費者ACK消息

2)關閉正在拿着他們開了消費者

很可能,選項#1並不是真正的選擇。當一個消息被卡住時,通常是因爲消費者失去了對該消息的追蹤,並且無法再進行確認。

這通常會留下#2:您需要關閉以前連接到該隊列的所有消費者。當消息被取消並且消費者下降時,RMQ將把消息推回到準備好的狀態。

如果您關閉了消費者並重新啓動它們,則會將消息重新置於unack'd狀態,那麼您需要找出導致消費者錯誤的原因,修復代碼並重新啓動它。

+1

有沒有第三種方法? – user3123372

相關問題