【问题标题】:Celery/Kombu ignoring run_every芹菜/昆布忽略 run_every
【发布时间】:2012-07-29 23:46:20
【问题描述】:

我是最近部署的 kombu/celery 设置。任务执行良好,但似乎几乎连续运行,而不是尊重 run_every 属性。也许更奇怪的是,这种行为只出现在生产中并且在本地运行良好。

我的tasks.py 看起来像这样:

from celery.task import  PeriodicTask
from datetime import timedelta, datetime

class FirstTask(PeriodicTask):
    run_every = timedelta(seconds = 30)
    # Do Stuff    

我的settings.py 包括

BROKER_URL = "django://"

import djcelery  
djcelery.setup_loader() 

加上'djcelery' 和'kombu.transport.django'in INSTALLED_APPS。

在生产中,我运行 python manage.py celeryd -v 2 -B -s celery -E -l INFO 来开始运行我的任务。我一直在关注 Chase Seibert 的 tutorial,如果这能解决其他问题的话。

【问题讨论】:

    标签: django celery django-celery kombu celerybeat


    【解决方案1】:

    为什么在 INSTALLED_APPS.. 中包含“kombu.transport.django”?我认为 celery 和 kombu 提供了相同的功能。

    【讨论】:

      【解决方案2】:

      完成任务需要多长时间?您是否尝试过在重试之前清除队列(如果您的队列中已经有任务,celery 可能不遵守run_every 设置...)

      【讨论】:

      • 哈哈:Purged 5625 messages from 1 known task queue. 这可能与它有关。它们是怎么堆积成这样的?
      • 你之前尝试过不同的时间间隔或不同的代码吗?还是任务执行时间过长?此外,如果您有很多其他 celery 任务,它们可能会延迟您的周期性任务的执行(不要认为run_every 间隔是理所当然的!)
      猜你喜欢
      • 1970-01-01
      • 2019-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-25
      • 1970-01-01
      相关资源
      最近更新 更多