2017-12-21 9 views
0

私は定期的にRabbitMQから更新を取得し、それらを処理するPythonスクリプトcron-jobを書いています。私がそれらを処理するたびに、私はRMQキューの現在のスナップショットを取得する必要があります。私はqueue_declareを使用してメッセージの数を取得します。 basic_getでメッセージを1つずつ取得する方法を知っています。また、basic_consume/start_consumingを使用して、バックグラウンドでメッセージを取得し、それらをいくつかのリストに格納し、定期的にそのリストから取得できますが、何らかのエラーでスクリプトが失敗するとどうなりますか?私はすべての読まれたメッセージをリストで失ってしまいます。また、私は消費者(RMQへの接続プール)をほとんど使用せず、メッセージを1つずつ取得することができます。多分それを行うための他のアプローチがありますか?RabbitMQキューからたくさんのメッセージを読む最も良い方法は?

だから、私の質問は - RabbiMQキューから現在のメッセージを取得するための最良の(すなわち、安全かつ高速な)方法は何か?

答えて

3

メッセージを消費するための最良の方法は、basic_consumeを使用しています。 basic_get

+0

は本当のような音が、私は、スクリプトを停止(または何らかのエラーが発生した)場合は消費しながら何が遅いのですか?特に問題はありますか? – Sergius

+2

RabbitMQの動作、具体的にはメッセージを確認するプロセスと、承認されていない場合にどうなるかを知る必要があります - https://www.rabbitmq.com/confirms.html –

関連する問題