目录
一、周期任务:每隔一段时间执行一次
二、定时任务:固定日期时间执行
pip install APScheduler
BlockingScheduler:当调度器是程序中唯一运行的东西时使用,阻塞式。
BackgroundScheduler:当调度器需要后台运行时使用。
AsyncIOScheduler:当程序使用 asyncio 框架时使用。
GeventScheduler:当程序使用 gevent 框架时使用。
TornadoScheduler:当构建 Tornado 程序时使用
TwistedScheduler:当构建 Twisted 程序时使用
QtScheduler:当构建 Qt 程序时使用
MemoryJobStore:使用内存存储
MongoDBJobStore:使用 MongoDB 存储
RedisJobStore:使用 redis 存储
RethinkDBJobStore:使用 rethinkdb 存储
SQLAlchemyJobStore:使用 ORM 框架 SQLAlchemy,后端可以是 sqlite、mysql、PoatgreSQL 等数据库
ZooKeeperJobStore:使用 zookeeper 存储
date:在某个特定时间仅运行一次 job 时使用
interval:当以固定的时间间隔运行 job 时使用
cron:当在特定时间定期运行 job 时使用
from datetime import datetime
from apscheduler.schedulers.blocking import BlockingScheduler
if __name__ == '__main__':
"""
周期性任务:每1秒执行一次(BlockingScheduler阻塞式)
"""
scheduler = BlockingScheduler()
scheduler.add_job(lambda: print(datetime.now()), 'interval', seconds=1)
scheduler.start()
from datetime import datetime
from apscheduler.schedulers.blocking import BlockingScheduler
if __name__ == '__main__':
"""
定时任务:每天的早上10:07执行任务(BlockingScheduler阻塞式)
主要参数:
year:年
month:月
day:日
week:周,一年中的第多少周,1-53
day_of_week:星期,0-6 或者 mon,tue,wed,thu,fri,sat,sun
hour:时
minute:分
second:秒
start_date:开始时间
end_date:结束时间
"""
scheduler = BlockingScheduler()
scheduler.add_job(lambda: print(datetime.now()), 'cron', hour=10, minute=7, second=0)
scheduler.start()
参考文档:Python 定时任务框架 APScheduler 详解 - leffss - 博客园