1、简单安装pip install apscheduler
2、直接上代码
import requests
import time
#非阻断模式,就是该定时任务执行之后,后面的代码依然可以执行
from apscheduler.schedulers.background import BackgroundScheduler
#阻断模式,该任务执行之后,后面的代码不执行
from apscheduler.schedulers.blocking import BlockingScheduler
#创建一个任务函数,检查某app在google商店是否上架,需要定时查询
def my_task():
# print("执行定时任务")
res = requests.get("https://play.google.com/store/apps/details?id=com.myloan.pesocash")
if res.status_code == 200:
print("上架状态", time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())))
else:
print("已经下架")
3、trigger主要是三个参数,interval,date,cron
#创建一个入口函数调用job
def main():
# 创建调度器,非阻塞
scheduler = BackgroundScheduler()
# a、trigger='interval'每5秒执行一次
scheduler.add_job(my_task, trigger='interval', seconds=5)
# b、trigger="date"定时到某个时间执行,过了时间则不执行
scheduler.add_job(my_task, trigger="date", run_date=datetime(2024, 4, 23, 10, 54, 00),timezone='Asia/Shanghai')
#c、循环执行,比如每天12点30分执行(hour=12,minute=30),方便演示改成没到30秒执行,比如14:10:30,14:11:30执行
scheduler.add_job(my_task, trigger="cron", second=30,timezone='Asia/Shanghai')
# 启动定时任务
scheduler.start()
4、执行函数,由于是非阻断,后面的while Ture也会执行,不影响main函数
if __name__ == '__main__':
main()
while True:
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())))
time.sleep(8)
5、返回结果
5.1、trigger='interval',可以看到是每5s执行一次job
2024-04-23 10:49:27
上架状态 2024-04-23 10:49:34
2024-04-23 10:49:35
上架状态 2024-04-23 10:49:39
上架状态 2024-04-23 10:49:43
2024-04-23 10:49:43
上架状态 2024-04-23 10:49:48
5.2、trigger='date',设定的时间执行一次,可以看到在设定的时间 2024-04-23 10:54:00执行了一次job
2024-04-23 10:53:39
2024-04-23 10:53:47
2024-04-23 10:53:55
上架状态 2024-04-23 10:54:01
2024-04-23 10:54:03
2024-04-23 10:54:11
5.3、trigger='corn',设定的时间周期执行,可以看到每当秒钟在30的时候执行一次,这个我们用的比较多,比如每天晚上12点跑一次定时任务
2024-04-23 10:57:24
上架状态 2024-04-23 10:57:32
2024-04-23 10:57:32
2024-04-23 10:57:40
2024-04-23 10:57:48
2024-04-23 10:57:56
2024-04-23 10:58:04
2024-04-23 10:58:12
2024-04-23 10:58:20
2024-04-23 10:58:28
上架状态 2024-04-23 10:58:30
2024-04-23 10:58:36