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對陷入阻塞中,適合執行運行該文件的程序使用