使用Celery + Redis时出现大幅延迟

时间:2013-03-13 13:16:25

标签: redis celery django-celery

我正在测试Django + Celery,你好世界的例子。使用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

以上测试中是否有任何问题?

1 个答案:

答案 0 :(得分:1)

我发现解决方案是源代码: 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