cron(或其派生程序)是运行计划的编程任务的唯一方法吗?例如:
在X日前3天向客户的信用卡收费
从时间x起6小时发送电子邮件
每小时执行xyz命令
有没有好的资源/书籍可以教你如何以一种干净的方式实现这些特性(python、ruby(或ror)、python)?
我当前的脏方法是让crontab中的包装器脚本每分钟运行一次,以检查是否应该运行某些任务。我真的不喜欢这样。我更喜欢一种可以编程实现预定任务的方法。
最佳答案
对于python,您可以使用celery
例如,每小时执行一次命令将如下所示:
from celery.task.schedules import crontab
from celery.decorators import periodic_task
@periodic_task(run_every=crontab(hour=3))
def every_three_hour():
print("This runs every three hour")
从现在开始执行三个小时后会是:
from datetime import datetime
YourTask.apply_async(args=[some, args, here], eta=datetime.now()+datetime.timedelta(hours=3))