【问题标题】:Huge delay when using Celery + Redis使用 Celery + Redis 时的巨大延迟
【发布时间】:2013-03-01 10:53:26
【问题描述】:

我正在测试 Django + Celery,hello world 示例。使用 RabbitMQ celery 可以正常工作,但是当我切换到 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

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

【问题讨论】:

    标签: redis celery django-celery


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2019-08-03
      • 2017-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多