芹菜如何立即执行周期性任务



我想使用芹菜执行定期任务。
根据文档:http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html#entries,我写下了以下代码:

app.conf.beat_schedule = {
    'test_celery': {
        'task': 'tasks.login.test_timertask',
        'schedule': 60.0,
    }
}

但是,当我按照以下方式运行它时:

celery beat -A tasks.login --loglevel=info

第一个任务将在60年代后执行。
我想一旦工作开始而不是60秒延迟,我想开始任务。我该怎么办?

您可以使用crontab时间表:

from celery.schedules import crontab
app.conf.beat_schedule = {
    'test_celery': {
        'task': 'tasks.login.test_timertask',
        'schedule': crontab(), # default, executes every minute
    }
}

但是您必须意识到以下(如文档状态(:

也存在类似crontab的时间表,请参阅crontab上的部分 时间表。

喜欢用cron,如果第一个任务没有 在下一个之前完成。如果这是一个问题,您应该使用锁定 确保仅一个实例可以运行的策略(请参阅 示例确保仅执行任务(。

相关内容

  • 没有找到相关文章

最新更新