要在指定的时间运行任务,在Celery中,您通常会使用
定期任务
,该 任务 通常是重复执行的任务。
但是,您可以创建具有非常特定的计划和条件的定期任务,该任务仅发生一次,因此只能运行一次。
不幸的是,我们只能指定了这么多,例如我们可以指定
hour,
minute,
day_of_month和
month_of_year,但我们不能确定
year
但是,您的任务每年最多可以运行1次,因此以下是一些解决方法:
运行后取消计划
一旦运行,取消 计划的时间 应该相对容易(您需要1年的时间!)
任务完成时使用“ DONE”标志
通过在某处(磁盘或数据库)写一个标志,您可以首先检查任务是否已经运行过,即
if done: exit
如果年份不正确 或想要安全起见,请 退出 ,只需将代码添加到检查年份的任务中即可,例如
if year != 2017: exit。简单的cron / Os级调度程序也可以工作
您也可以完全跳过Celery,并在类似UNIX的系统上使用某些 *** 作系统级别的工具(例如cron)。
总体思路保持不变。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)