検索

ホームページ  >  に質問  >  本文

Python - celery+rabbitmq 非同期タスク、キューメッセージが増加し続ける

セロリがrabbitmqと連携して非同期タスクを実行すると、rabbitmq内のメッセージの数が常に増加していることがわかりますが、これらのメッセージは実際にはタスクによって処理されています。

rabbimtq に付属するバックエンドを確認すると、キューに登録されたメッセージの準備完了数と合計数が 5,000 を超え、未確認の値が 0 であることがわかりました。ただし、実際に動作させると、unacknowledged の値は変化しますが、最終的には 0 になります。
celery の設定は特別なことはなく、以下の内容を設定するだけです。
CELERY_IMPORTS = ('testtasks',)
BROKER_URL = 'amqp://guest:guest@localhost:5672//'
CELERY_RESULT_BACKEND = 'amqp://'

次に、システム リソースを見てください。erl プロセス メモリは比較的大きく、おそらく 300 M 以上を使用しています。
セロリの設定に何か問題がありますか?

高洛峰高洛峰2741日前1142

全員に返信(1)返信します

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-06-22 11:53:49

    rabbitmq をバージョン 3.3 以降にアップグレードするだけで解決されました。
    以前はrabbitmqバージョン3.1を使用していましたが、セロリはバージョン3.1です


    問題を解決する実際の方法は、次のようにタスクにignore_result=True属性を追加することです
    @app.task(ignore_result=True)

    返事
    0
  • キャンセル返事