6

だから私はceleryとrabbitmqをセットアップし、ユーザーを作成し、vhostをセットアップし、ユーザーをvhostにマップし、celeryデーモンを正常に実行しました(またはそう思います)

(queuetest)corky@corky-server:~/projects/queuetest$ ./manage.py celeryd
 celery@corky-server v0.9.5 is starting.
 Configuration ->
. broker -> amqp://celery@localhost:5672/
. queues ->
. celery -> exchange:celery (direct) binding:celery
. concurrency -> 2
. loader -> celery.loaders.djangoapp
. logfile -> [stderr]@WARNING
. events -> OFF
. beat -> OFF

Celery has started.

この場合、私はあまり独創性を感じていなかったので、「セロリ」のユーザーを作成しました。

セロリのドキュメント内で簡単な例の1つを実行しようとすると、次のようになります。

>>> from tasks import add
>>> r = add.delay(2, 2)
>>> r
<AsyncResult: 16235ea3-c7d6-4cce-9387-5c6285312c7c>
>>> r.ready()
(hangs for eternity.)

そこで、FAQをチェックして、他に何が起きているのか疑問に思いました。これはユーザー権限による一般的なバグであるとのことでした。そこで、それらをトリプルチェックし、何もせず、別の新しいユーザーを作成しましたが、まだ何もありません。からインポートDjangoBrokerConnectioncarrot.connectionて情報を取得すると、セロリの設定と一致します。FAQには、ログファイルを確認するように記載されています。

私のrabbit.logファイルはこの状況ではあまり役に立ちません。単に次のように表示されます。

=INFO REPORT==== 26-Jan-2010::11:58:22 ===
accepted TCP connection on 0.0.0.0:5672 from 127.0.0.1:60572

=INFO REPORT==== 26-Jan-2010::11:58:22 ===
starting TCP connection <0.1120.0> from 127.0.0.1:60572

などなど。この時点で、私は自分の問題が他に何であるかについて途方に暮れています。Ubuntu Jauntyを実行していて、apt-getからRabbitMQをインストールしています。

助けてくれてありがとう。

4

2 に答える 2

4

これを引き起こしたであろう新しいユーザーにのみ現れる本当に醜いバグを修正しました。(http://github.com/ask/celery/commit/a9c1316b15055b67ee3c38d294461fa82ed6d2b5

githubのマスターブランチからプルしてください。それでも機能しない場合は、rabbitmqを停止し、rabbitmqデータベースディレクトリ(通常/var/lib/rabbitmq)を削除して、rabbitmqを再開する必要があります)

ご不便をおかけして申し訳ございません。最近、コンシューマルーティングキーオプションの名前を「バインディングキー」に変更したためにバグが発生しましたが、amqpライブラリは引き続き使用routing_keyしており、オプションを書き直すのを忘れていました。

于 2010-01-27T10:41:32.083 に答える
2

これに遭遇した人にとっては、セロリの更新で問題が解決したように見えても、/ var / lib/rabbitmqを削除するのに本当に役立つようです。そうするまで、私は多くの信頼性と予測不可能性を見ていました。

于 2010-11-24T15:50:51.450 に答える