apscheduler调度器类型:
BlockingScheduler 阻塞式调度器
BackgroudScheduler 非阻塞式后台调度器
AsyncIOScheduler
GeventScheduler
TornadoScheduler
TwistedScheduler
QtScheduler
#!usr/bin/env python
import time
import logging
from datetime import datetime
from apscheduler.schedulers.background import BackgroundScheduler
def func(trigger):
print(trigger, datetime.now())
logging.getLogger('apscheduler').setLevel(logging.DEBUG) # 调度器日志级别
scheduler = BackgroundScheduler()
time_now = datetime.now()
scheduler.add_job(func, 'cron', args=['cron'], hour=time_now.hour, minute=time_now.minute, second=time_now.second + 3) # 定时调度
# max_instances表示最多启动几个任务实例,replace_existing表示新的实例是否替换仍未结束的旧实例
scheduler.add_job(func, 'interval', kwargs={'trigger': 'interval'}, seconds=1, max_instances=1, next_run_time=time_now) # 循环调度
scheduler.start()
time.sleep(3)
print('暂停调度器')
scheduler.pause() # 暂停调度器
time.sleep(3)
print('恢复调度器')
scheduler.resume() # 恢复调度器
time.sleep(3)
print('停止调度器')
scheduler.shutdown(wait=False) # 停止调度器,wait表示是否等待已经激活的任务完成再停止