アーキテクチャ
DBレコードを持つシステムを考えてみましょう。各レコードはlive
またはexpired
のステータスになります。 live
レコードは、外部ソフトウェアモジュールを使用して定期的に処理する必要があります。Kombu + RabbitMQ:キューが空であるかどうかを調べる
私はKombuとRabbitMQの古典的なプロデューサ - コンシューマアーキテクチャを使用してこれを解決しました。プロデューサは数秒ごとにDBからレコードを取り出し、コンシューマがそれらを処理します。
問題
live
イベントの数が大幅に変化し、ピーク時間帯に、消費者が負荷を処理することはできませんし、キューがアイテムの千と詰まっています。
システムを適応させて、キューが空の場合にプロデューサが新しいイベントをコンシューマに送信しないようにしたいと思います。 http://<host>:<port/api/queues/<vhost>/<queue_name>
:
は私がRabbitMQのREST APIを使用して、キューオブジェクト
- 何を試してみました。それは機能しますが、それはまだ維持するもう1つの仕組みです。私はKombu内の優雅なソリューションを好みます。
PythonのKombuを使用してRabbitMQが空であるかどうかを確認するにはどうすればよいですか?
キューをインポートする方法は? kombuインポートキューからの – Kishan
。 queueはQueueオブジェクトです。 – odedfos
ドキュメントでこれを見つけることができないため、リンク先のドキュメントを参照してください。 – RexFuzzle