2

バックグラウンドで大量のメールを送信できるように、Celery で Django をセットアップしようとしています。

さまざまなコンポーネントが Celery でどのように機能するかについて、少し混乱しています。RabbitMQ を使用する必要がありますか? 「django-kombu」だけでセロリを実行できますか? ( http://ask.github.com/celery/tutorials/otherqueues.html#django-database )

django-celery ドキュメント ( http://django-celery.readthedocs.org/en/latest/getting-started/first-steps-with-django.html ) の「Django の最初のステップ」から始めましたが、 「セロリワーカーサーバーの実行」に到達すると、次のことが起こります。

$ python manage.py celeryd -l info
[2011-09-02 18:35:00,150: WARNING/MainProcess]  

 -------------- celery@Sauls-MacBook.local v2.3.1
---- **** -----
--- * ***  * -- [Configuration]
-- * - **** ---   . broker:      amqplib://guest@localhost:5672/
- ** ----------   . loader:      djcelery.loaders.DjangoLoader
- ** ----------   . logfile:     [stderr]@INFO
- ** ----------   . concurrency: 2
- ** ----------   . events:      OFF
- *** --- * ---   . beat:        OFF
-- ******* ----
--- ***** ----- [Queues]
 --------------   . celery:      exchange:celery (direct) binding:celery


[Tasks]
  . tasks.add

[2011-09-02 18:35:00,213: INFO/PoolWorker-2] child process calling self.run()
[2011-09-02 18:35:00,214: INFO/PoolWorker-1] child process calling self.run()
[2011-09-02 18:35:00,229: WARNING/MainProcess] celery@Sauls-MacBook.local has started.
[2011-09-02 18:35:00,276: ERROR/MainProcess] Consumer: Connection Error: [Errno 61} Connection refused. Trying again in 2 seconds...
[2011-09-02 18:35:02,283: ERROR/MainProcess] Consumer: Connection Error: [Errno 61] Connection refused. Trying again in 4 seconds...

その後、プロセスを終了する必要があります...

4

1 に答える 1

4

構成からわかるように、トランスポートを正しく設定していませんでした。実際、セロリは、Rabbit MQ などのブローカーへの接続に amqplib を使用しようとしています。

broker:      amqplib://guest@localhost:5672/

settings.py で、ブローカーのバックエンドを次のように設定する必要があります。

BROKER_BACKEND = "djkombu.transport.DatabaseTransport"
于 2011-09-12T06:45:15.247 に答える