セロリがrabbitmqと連攜して非同期タスクを?qū)g行すると、rabbitmq內(nèi)のメッセージの數(shù)が常に増加していることがわかりますが、これらのメッセージは実際にはタスクによって処理されています。
rabbimtq に付屬するバックエンドを確認(rèn)すると、キューに登録されたメッセージの準(zhǔn)備完了數(shù)と合計(jì)數(shù)が 5,000 を超え、未確認(rèn)の値が 0 であることがわかりました。ただし、実際に動(dòng)作させると、unacknowledged の値は変化しますが、最終的には 0 になります。
celery の設(shè)定は特別なことはなく、以下の內(nèi)容を設(shè)定するだけです。
CELERY_IMPORTS = ('testtasks',)
BROKER_URL = 'amqp://guest:guest@localhost:5672//'
CELERY_RESULT_BACKEND = 'amqp://'
次に、システム リソースを見てください。erl プロセス メモリは比較的大きく、おそらく 300 M 以上を使用しています。
セロリの設(shè)定に何か問題がありますか?
擁有18年軟件開發(fā)和IT教學(xué)經(jīng)驗(yàn)。曾任多家上市公司技術(shù)總監(jiān)、架構(gòu)師、項(xiàng)目經(jīng)理、高級軟件工程師等職務(wù)。 網(wǎng)絡(luò)人氣名人講師,...
rabbitmq をバージョン 3.3 以降にアップグレードするだけで解決されました。
以前はrabbitmqバージョン3.1を使用していましたが、セロリはバージョン3.1です
問題を解決する実際の方法は、次のようにタスクにignore_result=True屬性を追加することです
@app.task(ignore_result=True)