小编Dre*_*rew的帖子

Celery 在设置时间时击败不发送 crontab 任务

我正在使用 celery 4.1,除了我在 crontab 任务中设置时间的地方之外,所有定期任务都可以正常工作。我认为这与时区设置有关,但我似乎无法弄清楚问题出在哪里。

仪表板/celery.py

from __future__ import absolute_import, unicode_literals
from celery import Celery

app = Celery('dashboard',
         broker='redis://',
         backend='redis://localhost',
         include=['dashboard.tasks'])

app.conf.update(
    result_expires=3600,
    enable_utc = False,
    timezone = 'America/New_York'
)


if __name__ == '__main__':
    app.start()
Run Code Online (Sandbox Code Playgroud)

这有效:

@app.task
@periodic_task(run_every=(crontab()))
def shutdown_vms():
    inst = C2CManage(['stop','kube'])
    inst.run()
    return
Run Code Online (Sandbox Code Playgroud)

这有效:

@app.task
@periodic_task(run_every=(crontab(minute=30,hour='*')))
def shutdown_vms():
    inst = C2CManage(['stop','kube'])
    inst.run()
    return
Run Code Online (Sandbox Code Playgroud)

这不起作用:

@app.task
@periodic_task(run_every=(crontab(minute=30,hour=6)))
def shutdown_vms():
    inst = C2CManage(['stop','kube'])
    inst.run()
    return
Run Code Online (Sandbox Code Playgroud)

Beat 很好地完成了任务:

<ScheduleEntry: dashboard.tasks.shutdown_vms dashboard.tasks.shutdown_vms() <crontab: 30 6 * * * (m/h/d/dM/MY)>
Run Code Online (Sandbox Code Playgroud)

但它从不发送它。我已经让进程运行了一个周末,但它从未提交任务。我不知道我做错了什么。我确实有其他按 timedelta 周期运行的任务,它们都运行得很好。 …

python celery celery-task

5
推荐指数
1
解决办法
6969
查看次数

标签 统计

celery ×1

celery-task ×1

python ×1