APScheduler

Python的APScheduler框架可以用于实现定时任务。

安装

pip install apscheduler

基础组件

四大基础组件类型:

  • triggers
  • job stores
  • executors
  • schedulers

组件:

  • BlockingScheduler: use when the scheduler is the only thing running in your process
  • BackgroundScheduler: use then you’re not using any of the frameworks below, and want the scheduler to run in the background inside your application
  • AsyncIOScheduler: use if your application uses the asyncio module
  • GeventScheduler: use if your application uses gevent
  • TornadoScheduler: use if you’re building a Tornado application
  • TwistedScheduler: use if you’re building a Twisted application
  • QtScheduler: use if you’re building a Qt application

示例

每隔一段时间执行

from apscheduler.schedulers.background import BlockingScheduler
from datetime import datetime

scheduler = BlockingScheduler()

def fun1():
    print('Hello World 1')

# 每3s执行一次的job
job = scheduler.add_job(fun1, 'interval', seconds=3, id='my_job')

每隔一段时间执行并给函数传递参数

# coding=UTF-8

from apscheduler.schedulers.background import BlockingScheduler
from datetime import datetime

scheduler = BlockingScheduler()

def fun2(i):
    print(i)
# 每3s执行一次的job,并给函数传参数
i=0
job = scheduler.add_job(fun2, 'interval', seconds=3, id='my_job2', args=[i])

scheduler.start()