我正在测试Django + Celery,您好是世界示例。使用RabbitMQcelery可以正常工作,但是当我切换到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'
task.py
@task() def add(x, y): return x + y
上面的测试中有什么问题吗?
我发现解决方案是源代码:http : //docs.celeryproject.org/en/latest/_modules/celery/result.html#AsyncResult.get
interval –重试检索结果之前等待的时间(以秒为单位)。请注意,这在使用amqp结果存储后端时不起作用,因为它不使用轮询。
默认情况下为0.5秒。您可以手动更改它,但不建议使用此方法来运行任务:
%timeit add.delay(1,2).get(interval=0.001) 100 loops, best of 3: 3.92 ms per loop