安装只需要一行命令。
pip3 install apscheduler
如果对Python的环境搭建及模块安装还不熟悉,可以看看我写的另一篇博客 Python环境搭建及模块安装 。
首先介绍两个最常用的调度器:
这是人说的话吗?字我都看得懂,意思一点也不明白。。。
简单说来,可以把 BlockingScheduler
看成是单线程,如果在程序中仅仅只运行定时任务,那么就应该选择阻塞式调度器。
而把 BackgroundScheduler
看成是多线程,如果在程序中除了运行定时任务,咱们还想同时做点别的计算啥的,那就应该选择后台调度器。
这里我选择使用 BlockingScheduler
阻塞式调度器,主程序只负责调度定时任务,不执行其他计算等操作。
如下所示:
from apscheduler.schedulers.blocking import BlockingScheduler # 引入模块
def task():
'''定时任务'''
os.system('python3 spider.py')
if __name__ == '__main__':
scheduler = BlockingScheduler()
# 添加任务
scheduler.add_job(task, 'cron', hour=11, minute=30)
scheduler.start()
运行上面这段代码,就会在每天的11:30时执行 python3 spider.py
命令。
其中,出现了个新标签 cron
,这玩意儿叫触发器,可以设置定时任务触发的条件,这里就简单介绍一下这个小东西。
APScheduler有三种内置的触发器:
日期,在某个具体的日期触发定时任务,仅触发一次。
如上所示,run_date 参数可以是 date型
或 str型
,甚至可以不显式指定。
间隔,在某个时间间隔后触发定时任务,间隔触发无限次。
如上所示,weeks、days、hours、minutes、seconds 的参数都是 int型
。
周期,在某个周期内触发定时任务,循环触发无限次。
该触发器的规则和 crontab
类似。各参数的说明如下:
参数 | 说明 |
---|---|
year | int型或str,取值四位数的年份,如2020年 |
month | int型或str,取值范围为1-12月 |
week | int型或str,取值范围为第1-53周 |
day_of_week | int型或str,表示一周中的第几天,既可以用0-6表示也可以用其英语缩写表示(mon,tue,wed,thu,fri,sat,sun) |
day | int型或str,取值范围为1-31日 |
hour | int型或str,取值范围为0-23时 |
minute | int型或str,取值范围为0-59分 |
second | int型或str,取值范围为0-59秒 |
start_date | datetime型或str,表示开始时间 |
end_date | datetime型或str,表示结束时间 |
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有