如何安排一个任务在特定时间每n分钟运行一次(celery-django)

mcvgt66p  于 2023-01-10  发布在  Go
关注(0)|答案(1)|浏览(150)

当在django中使用celerybeat时,我想安排一个任务在特定的时间开始,然后每5分钟运行一次。我可以使用crontab(minute ='*/5')让任务每5分钟运行一次,这将在celerybeat启动后运行,但我想在8:30运行它,如何做到这一点?

qacovj5a

qacovj5a1#

首先,您将任务设置为每5分钟运行一次,并且您已经完成了此操作。
第二步是将任务的主体封装到一个条件中,该条件检查任务当前是否应该运行。

from django.utils import timezone
import datetime

@app.task
def my_task():
    now = timezone.now().time()
    start_time = datetime.time(8, 30, 0)
    end_time = datetime.time(17, 30, 0)
    if now >= start_time and now < end_time:
        # your task ...

相关问题