小编典典

使用Celery+ Redis的巨大延迟

redis

我正在测试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

上面的测试中有什么问题吗?


阅读 808

收藏
2020-06-20

共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
2020-06-20