2011-07-18 1992 views
2

我有一個嚴重的問題與RabbitMQ。收到一定數量的消息後,消費者只是停止接收消息。他們仍然連接,但不再接收消息。我發現了關於這個問題的其他帖子,但沒有一個有工作的答案。RabbitMQ消費者停止接收消息

這裏是我使用的連接包裝:http://pastebin.com/XVY3HNGq。 我使用的是stormed-amqp,它是python的異步amqp庫。

我試着消費沒有ack或ack和qos預取計數爲100的消息(如對這種問題的幾種響應所示)。

當我做「rabbitmqctl list_queues名稱messages_ready messages_unacknowledged」時,使用ack時,我有很多準備好的消息和unacknoledged消息的「prefetch count」(100)值。

我真的不知道你有沒有發生! 謝謝你的回答。

+0

您是否找到針對您的問題的解決方案? – Dojo

回答

0

看着代碼,我看不到任何錯誤。將no-ack設置爲True並將預取計數設置爲0應該可以正常工作。你確定你的應用程序沒有因爲一些異常而崩潰嗎?它凍結的時刻有什麼特別之處嗎?

您也可以嘗試詢問RabbitMQ Discuss郵件列表。開發人員通常回答所有問題,其中一些人熟悉Python AMQP客戶端。

0

我敢打賭,你正在使用Ubuntu或Debian,並與他們所包含的老版本的RabbitMQ合作。當我從rabbitmq.com安裝RabbitMQ 2.31或更高版本時,我遇到了同樣的問題,他們都離開了。

只對舊的Ubuntu和Debian軟件包說「不」。

0

我遇到了同樣的問題(但與Java消費者),並意識到原因是rabbitmq服務器已用盡文件描述符(默認情況下Ubuntu有1024)。 嘗試增加運行rabbitmq進程的用戶在運行rabbitmq服務器的機器上的linux中的打開文件限制。增加這些限制的方式在這裏描述:http://www.cyberciti.biz/faq/linux-increase-the-maximum-number-of-open-files/

乾杯