首页 > 编程语言 > 详细

python 定时框架APScheduler

时间:2021-07-20 17:59:22      阅读:22      评论:0      收藏:0      [点我收藏+]

 

pip install apscheduler
APScheduler提供了七种调度器:
BlockingScheduler:适合于只在进程中运行单个任务的情况,通常在调度器是你唯一要运行的东西时使用。
BackgroundScheduler: 适合于要求任何在程序后台运行的情况,当希望调度器在应用后台执行时使用。
AsyncIOScheduler:适合于使用asyncio异步框架的情况
GeventScheduler: 适合于使用gevent框架的情况
TornadoScheduler: 适合于使用Tornado框架的应用
TwistedScheduler: 适合使用Twisted框架的应用
QtScheduler: 适合使用QT的情况

 

例子:

定时轮询:

import time
from apscheduler.schedulers.blocking import BlockingScheduler
 
def my_job():
    print time.strftime(%Y-%m-%d %H:%M:%S, time.localtime(time.time()))
 
sched = BlockingScheduler()
sched.add_job(my_job, interval, seconds=5)
sched.start()

上面的例子表示每隔5s执行一次my_job函数,输出当前时间信息

1. 添加作业

上面是通过add_job()来添加作业,另外还有一种方式是通过scheduled_job()修饰器来修饰函数

import time
from apscheduler.schedulers.blocking import BlockingScheduler

sched = BlockingScheduler()
@sched.scheduled_job(
interval, seconds=5) def my_job(): print time.strftime(%Y-%m-%d %H:%M:%S, time.localtime(time.time())) sched.start()

(1). cron定时调度(某一定时时刻执行)

(int|str) 表示参数既可以是int类型,也可以是str类型
(datetime | str) 表示参数既可以是datetime类型,也可以是str类型
 
year (int|str) – 4-digit year -(表示四位数的年份,如2008年)
month (int|str) – month (1-12) -(表示取值范围为1-12月)
day (int|str) – day of the (1-31) -(表示取值范围为1-31日)
week (int|str) – ISO week (1-53) -(格里历2006年12月31日可以写成2006年-W52-7(扩展形式)或2006W527(紧凑形式))
day_of_week (int|str) – number or name of weekday (0-6 or mon,tue,wed,thu,fri,sat,sun) - (表示一周中的第几天,既可以用0-6表示也可以用其英语缩写表示)
hour (int|str) – hour (0-23) - (表示取值范围为0-23时)
minute (int|str) – minute (0-59) - (表示取值范围为0-59分)
second (int|str) – second (0-59) - (表示取值范围为0-59秒)
start_date (datetime|str) – earliest possible date/time to trigger on (inclusive) - (表示开始时间)
end_date (datetime|str) – latest possible date/time to trigger on (inclusive) - (表示结束时间)
timezone (datetime.tzinfo|str) – time zone to use for the date/time calculations (defaults to scheduler timezone) -(表示时区取值)

例子:

#表示2017年3月22日17时19分07秒执行该程序
sched.add_job(my_job, cron, year=2017,month = 03,day = 22,hour = 17,minute = 19,second = 07)
 
#表示任务在6,7,8,11,12月份的第三个星期五的00:00,01:00,02:00,03:00 执行该程序
sched.add_job(my_job, cron, month=6-8,11-12, day=3rd fri, hour=0-3)
 
#表示从星期一到星期五5:30(AM)直到2014-05-30 00:00:00
sched.add_job(my_job(), cron, day_of_week=mon-fri, hour=5, minute=30,end_date=2014-05-30)
 
#表示每5秒执行该程序一次,相当于interval 间隔调度中seconds = 5
sched.add_job(my_job, cron,second = */5)

 

详见:https://www.cnblogs.com/luxiaojun/p/6567132.html

python 定时框架APScheduler

原文:https://www.cnblogs.com/lshan/p/15035821.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!