【问题标题】:Everytime Celery is restarted all the scheduled tasks are acknowledged每次 Celery 重新启动时,所有计划任务都会得到确认
【发布时间】:2016-07-14 09:52:22
【问题描述】:

每次重新启动 Celery 时,都会再次确认所有计划任务。

这会导致开始处理新任务时出现巨大的时间延迟。

我们如何解决这个问题?

【问题讨论】:

    标签: python django server celery


    【解决方案1】:

    您可以在再次启动 Celery 之前简单地清除所有任务:

    $ celery purge
    WARNING: This will remove all tasks from queue: celery.
             There is no undo for this operation!
    
    (to skip this prompt use the -f option)
    
    Are you sure you want to delete all tasks (yes/NO)? 
    

    【讨论】:

    • 不,我不想清除任务。我只是重新加载新代码而不重新加载所有任务的芹菜
    【解决方案2】:

    如果您不想清除队列中等待执行的任务,即您也希望它们执行,那么显然那些旧任务将在新任务之前执行,因为新任务在旧任务之后进入队列,并且因为它是一个队列,它将遵循 先进先出。 p>

    现在,如果您希望执行 旧任务,但 不想等待先执行旧的,根据我的理解,你不想清除旧的,也不想延迟,那么你可以为任务维护 两个或更多单独的队列

    因此,在每次重新加载时,您的新任务都会被分配到一个新的 QUEUE,这将不依赖于旧任务。

    看到这个 -> How to keep multiple independent celery queues?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-08
      • 1970-01-01
      • 2021-07-05
      • 2021-01-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多