python定时任务框架APScheduler

一、安装:

 pip install apscheduler -i https://pypi.tuna.tsinghua.edu.cn/simple

二、APScheduler的使用:

三、APScheduler配置详解:

1、DateTrigger:日期触发器,主要是在某一日期时间点上运行任务时调用,是 APScheduler 里面最简单的一种触发器。通常也适用于一次性的任务或作业调度。

from apscheduler.schedulers.blocking import BlockingScheduler

def my_job():
    print('Hello World!')
sched = BlockingScheduler()
# 采用date固定时间模式,在特定时间只执行一次
sched.add_job(my_job, 'date', run_date='2024-01-10 00:00:00')
sched.start()

2、IntervalTrigger:间隔触发器,在日期触发器基础上扩展了,比如时、分、秒、天、周这几个部分的设定。是我们用以对重复性任务进行设定或调度的一个常用调度器。设定了时间部分之后,从起始日期开始(默认是当前)会按照设定的时间去执行任务。

from apscheduler.schedulers.blocking import BlockingScheduler

def my_job():
    print('Hello World!')
sched = BlockingScheduler()
# 采用interval固定间隔模式,在2024年1月10号9点-10点,每隔五秒只执行一次
sched.add_job(company_new_add, 'interval', seconds=5, start_date="2024-01-10 09:00:00",
                      end_date="2024-01-10 10:00:00", timezone="Asia/Shanghai")
sched.start()
interval触发器支持设置的参数:
参数含义
weeks(int)每隔几周
days (int)间隔几天
hours (int) 间隔几小时 
minutes (int)间隔几分钟
seconds (int)间隔多少秒 
start_date (datetime|str)开始日期 
end_date (datetime|str)结束日期 

3、CronTrigger:cron 表达式触发器。cron 表达式触发器就等价于我们 Linux 上的 crontab,它主要用于更复杂的日期时间进行设定。

from apscheduler.schedulers.blocking import BlockingScheduler

def everyday_job():
    print('Hello World!')
 
sched = BlockingScheduler()
#每隔一天 执行一次程序
# sched.add_job(everyday_job, 'interval', days=1)
#每天早上十点半和十八点半各执行一次程序
sched.add_job(everyday_job, 'cron', hour='10, 18', minute='30')
sched.start()
cron触发器支持设置如下参数:
用表达式类型参数设置如下:
表达式参数类型描述
*所有通配符。例: minutes=* 即每分钟触发
*/a所有可被a整除的通配符。
a-b所有范围a-b触发
a-b/c所有范围a-b,且可被c整除时触发
xth y第几个星期几触发。x为第几个,y为星期几
last x一个月中,最后个星期几触发
last一个月最后一天触发
x,y,z所有组合表达式,可以组合确定值或上方的表达式

4、参数的传入:

传递参数的方式有元组(tuple)、列表(list)、字典(dict) *****注意:不过需要注意采用元组传递参数时后边需要多加一个逗号*****
import time
import datetime
from apscheduler.schedulers.blocking import BlockingScheduler

def job1(f):
    print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())), f)

def job2(args1, args2, f):
    print(type(args1))
    print (f, args1, args2)

def job3(**args):
    print (args)

#带有参数的示例
scheduler.add_job(job2, 'interval', seconds=5, args=['a','b'], id='test_job4')
scheduler.add_job(job2, 'interval', seconds=5, args=('a','b','c',), id='test_job5')
scheduler.add_job(job3, 'interval', seconds=5, kwargs={'a':1,'b':2}, id='test_job6')
# print scheduler.get_jobs()
scheduler.start()



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值