7

何らかの理由で、Celery で新しいタスクを作成して実行すると、結果を返す際に問題が発生します。最初のタスクは完全に返されますが、後続のすべてのタスクの結果は常に保留中です。Celery ログを確認したところ、エラーなしで正しい結果が得られましたが、それを返すことができません。

それが役立つ場合は、バックエンドとして rabbitmq を実行しています。

4

2 に答える 2

5

バックエンドを明示的に指定する必要があっただけです。

追加:

CELERY_RESULT_BACKEND = "amqp"

私の設定ファイルにすべてを修正するように見えました。

于 2010-11-10T13:26:39.960 に答える
1

'amqp'バックエンドを追加しても同じ問題が発生します。

これが私のセロリ設定ファイルです:

BROKER_HOST = "localhost"
BROKER_PORT = 5672
BROKER_USER = "guest"
BROKER_PASSWORD = "guest"
BROKER_VHOST = "/"

CELERY_RESULT_BACKEND = "amqp"
CELERY_AMQP_TASK_RESULT_EXPIRES = 18000  # 5 hours.
CELERY_IMPORTS = ("test", )

1回目は成功し、2回目はハングした私のシェル。しばらくしてから、メソッドを再度呼び出すと機能します。このパターンは繰り返され続けます。

>>> r = test.add.delay(4, 4)
>>> r.get()
8
>>> r = test.add.delay(4, 4)
>>> r.get()
^C <---------- it was hung here forever, I had to press ^C

>>> r = test.add.delay(4, 4)
>>> r.get()
8
于 2011-02-16T10:04:35.773 に答える