【问题标题】:Celery run task periodically only next 5 daysCelery 仅在接下来的 5 天定期运行任务
【发布时间】:2016-05-04 10:04:59
【问题描述】:

我有一个 celery 任务,我需要它在接下来的五天凌晨 12.30 运行。我如何使用 celery-beat 做到这一点。我知道如何永远定期运行它,但只能在接下来的五天里弄清楚有什么想法吗?

【问题讨论】:

  • 你有运气吗?

标签: rabbitmq celery celery-task celerybeat


【解决方案1】:

查看crontab 的 celery-beat 文档。尽管如果这实际上是一次性的,那么根据定义,它并不完全是周期性的。您可以将 crontab 定期任务设置为在接下来的 5 天的凌晨 12:30 运行,但您还必须记住手动将其关闭。

如果你走这条路

from celery.schedules import crontab

CELERYBEAT_SCHEDULE = {
    'add-at-midnightish': {
        'task': 'tasks.add',
        'schedule': crontab(hour=0, minute=30,),
        'args': (16, 16),
    },
}

或者,您可以在apply_async 上使用eta 关键字,如@9​​87654322@ 中所述

【讨论】:

  • 同意,但我不需要手动关闭它。五天后有没有办法自动关机。
猜你喜欢
  • 2017-02-26
  • 2016-12-28
  • 1970-01-01
  • 2012-05-09
  • 1970-01-01
  • 1970-01-01
  • 2018-04-14
  • 2012-10-05
  • 2022-11-14
相关资源
最近更新 更多