apscheduler

引言

apscheduler可以拆分成两部分:

aps: 进阶生产规划及排程系统
scheduler: 调度程序,日程安排程序

当程序希望某个函数每隔一段时间执行一次,或者某个函数在某天(每天)的某个时间执行,就可以引入apscheduler库。

from apscheduler.schedulers.blocking import BlockingScheduler
import time

def doing():
  print("do doing!!")

if __name__=="__main__":
    sched = BlockingScheduler()  # 1
    sched.add_job(doing, 'interval', seconds=10) # 2
    sched.start() # 3

1 实例化BlockingScheduler对象

2 添加任务

add_job()函数4个常用参数,第一个是所要执行的函数
第二个是触发器,可以定时触发,或者间歇性触发

  • date 日期:触发任务运行的具体日期
  • interval 间隔:触发任务运行的时间间隔
  • cron 周期:触发任务运行的周期
  1. 第三个参数是在选择触发器以后设置的,比如scconds=10就是10s执行一次
  2. args用来给函数传参。args=['text']

3 启动日程

可以通过sched.add_job()启动多个定时任务后再执行整个调度器
比如

import time
from apscheduler.schedulers.background import BackgroundScheduler
def func1():
    print("func1")

def func2():
    print("func2")

def func3():
    print("func3")


if __name__ == "__main__": 
    func_list = [func1, func2, func3] # 设置多个函数
    sched = BackgroundScheduler()
    for index, func in enumerate(func_list): 
        sched.add_job(func, 'interval', seconds=int(index)+1)
    sched.start() # 最后一次性启动
    while True:
        time.sleep(1)
        print('*'*50)

你可能感兴趣的:(apscheduler)