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对陷入阻塞中,适合执行运行该文件的程序使用