3
架構
考慮一個帶有DB記錄的系統。每條記錄可以是live
或expired
狀態;應使用外部軟件模塊定期處理live
記錄。Kombu + RabbitMQ:檢查隊列是否爲空
我已經用Kombu和RabbitMQ的經典生產者 - 消費者體系結構解決了這個問題。生產者每隔幾秒從DB獲取記錄,並由消費者處理它們。
問題
的live
事件的數量差別很大,並在高峯時段,消費者不能處理負載和隊列堵塞物品萬人。
我想使系統具有適應性,以便生產者在隊列爲空時不會向消費者發送新事件。
有什麼我試圖
- 搜索海帶文檔/ API
- 檢查隊列對象
- 使用RabbitMQ的REST API:
http://<host>:<port/api/queues/<vhost>/<queue_name>
。它很有效,但它是另一種維護機制,我更喜歡Kombu內部的優雅解決方案。
如何使用Python的Kombu檢查RabbitMQ是否爲空?
如何導入隊列?來自kombu進口隊列的 – Kishan
。隊列是一個Queue對象。 – odedfos
可否請您參考文檔鏈接,因爲我無法再在文檔中找到它。 – RexFuzzle