0

Django + Celery、HelloWorldの例をテストしています。RabbitMQを使用すると、セロリは正常に機能しますが、Redisブローカー/結果に切り替えると次のようになります。

%timeit add.delay(1,2).get()
1 loops, best of 3: 503 ms per loop

settings.py

CELERY_RESULT_BACKEND = "redis"
BROKER_URL = 'redis://localhost:6379'

tasks.py

@task()
def add(x, y):
    return x + y

上記のテストに問題はありますか?

4

1 に答える 1

1

解決策はソースコードであることがわかりました:http: //docs.celeryproject.org/en/latest/_modules/celery/result.html#AsyncResult.get

間隔–結果の取得を再試行する前に待機する時間(秒単位)。amqp結果ストアバックエンドを使用する場合、ポーリングを使用しないため、これは効果がないことに注意してください。

デフォルトでは0.5秒です。手動で変更できますが、タスクを実行するための推奨される方法ではありません。

%timeit add.delay(1,2).get(interval=0.001)
100 loops, best of 3: 3.92 ms per loop
于 2013-03-13T13:44:40.577 に答える