python做定时任务schedule、aspscheduler、celery

schedule是轻量级的定时任务模块,不支持年级别的任务。

aspscheduler是全能型的定时任务框架,支持定时任务、一次性任务等等

celery是主要是异步任务,也可以用到一些定时任务,但是设置太麻烦,不支持一次性任务。

schedule用法:

推荐博客:https://zhuanlan.zhihu.com/p/161103729

 # 每的任务,都是规定时间的 + 当前时间 是下次运行时间,不能固定多少执行。

aspscheduler用法:

// 以下是内存存储任务,并且直接运行阻塞的写法

from apscheduler.executors.pool import ThreadPoolExecutor, ProcessPoolExecutor
from pytz import timezone
from apscheduler.schedulers.background import BlockingScheduler
from apscheduler.triggers.cron import CronTrigger

from my_crontab import task

executors = {
    'default': ThreadPoolExecutor(10),
    'processpool': ProcessPoolExecutor(3)
}
job_defaults = {
    'coalesce': False,
    'max_instances': 3
}

# 实例调度器对象
scheduler = BlockingScheduler(executors=executors, job_defaults=job_defaults, timezone=timezone('Asia/Shanghai'))

# 每30秒执行一次
scheduler.add_job(func=task.summary_expire_info, trigger=CronTrigger(second=30))

# print(scheduler.get_jobs())

print("crontab run~")
scheduler.start()

# BlockingScheduler 用它实例的,调用start对陷入阻塞中,适合执行运行该文件的程序使用

原文地址:https://www.cnblogs.com/zezhou/p/13986218.html