4

Heroku にデプロイ済みの Django アプリがあります。このアプリはメッセージ キューイングに Celery を使用しており、RabbitMQ を使用してローカルで問題なく実行しました。

残念ながら、この赤ん坊を Heroku にデプロイしようとしたとき、RabbitMQ アドオンが利用できず、CloudAMQP を使用する必要があることがわかりました。CloudAMQP と Heroku の両方のドキュメントを見ると、Celery を使用できると思われます (彼らは Pika を推奨していますが) が、デプロイしようとすると、スケジューラーとワーカー プロセスの両方でひどい接続エラーが発生します。正確なエラーは次のとおりです。

2012-07-09T16:46:22+00:00 app[scheduler.1]: [2012-07-09 11:46:22,234: ERROR/Beat] Celerybeat: Connection error: [Errno 111] Connection refused. Trying again in 2.0 seconds...
2012-07-09T16:46:23+00:00 app[worker.1]: [2012-07-09 11:46:23,852: ERROR/MainProcess] Consumer: Connection Error: [Errno 111] Connection refused. Trying again in 2 seconds...

私の Heroku 設定変数には CLOUDAMQP_URL があることに注意してください。問題にはなりませんか?

CloudAMQP を Django/Heroku で使用したことがある方がいらっしゃいましたら、Celery がブローカーに確実に接続できるようにする方法を教えていただければ幸いです。

4

2 に答える 2

6

無料プランの 3 つの同時接続制限を超えている可能性があります。BROKER_POOL_LIMITを 1 に設定する と、はるかにうまく機能するはずです。

于 2012-07-10T11:54:57.630 に答える
4

settings.pyこれがファイルの先頭にあることを確認してください。

import djcelery
djcelery.setup_loader()
于 2012-11-15T20:06:33.453 に答える