我怎样才能 运行 在 django 中只执行一次 celery 任务?
how can I run celery task only once in django?
from __future__ import absolute_import, unicode_literals
from celery import shared_task
from celery.task import periodic_task
from celery.schedules import crontab
from datetime import timedelta
@periodic_task(run_every=(crontab(minute='*/1')), name='greeting_task')
def greeting_task():
print('hello Dias!')
我可以使用 crontab 创建一个在特定时间只运行一次的函数吗?请帮忙!!!
提前致谢!
您需要更改 crontab
的参数。
示例:如果您希望任务在每天凌晨 5 点 运行 一次:
@periodic_task(run_every=(crontab(minute='0', hour='5')), name='greeting_task')
def greeting_task():
print('hello Dias!')
crontab(minute='*/1')
每分钟都会 运行 任务。在此处阅读有关 crontab 语法的信息:https://en.wikipedia.org/wiki/Cron
如果您使用的是Django-Celery-Beat, it has the ability to create tasks that run only once at a specific date/time using the ClockedSchedule
型号。由于某种原因它不在文档中,但您可以通过 Django Admin 轻松配置它。
from __future__ import absolute_import, unicode_literals
from celery import shared_task
from celery.task import periodic_task
from celery.schedules import crontab
from datetime import timedelta
@periodic_task(run_every=(crontab(minute='*/1')), name='greeting_task')
def greeting_task():
print('hello Dias!')
我可以使用 crontab 创建一个在特定时间只运行一次的函数吗?请帮忙!!! 提前致谢!
您需要更改 crontab
的参数。
示例:如果您希望任务在每天凌晨 5 点 运行 一次:
@periodic_task(run_every=(crontab(minute='0', hour='5')), name='greeting_task')
def greeting_task():
print('hello Dias!')
crontab(minute='*/1')
每分钟都会 运行 任务。在此处阅读有关 crontab 语法的信息:https://en.wikipedia.org/wiki/Cron
如果您使用的是Django-Celery-Beat, it has the ability to create tasks that run only once at a specific date/time using the ClockedSchedule
型号。由于某种原因它不在文档中,但您可以通过 Django Admin 轻松配置它。