在网上搜了下,都是直接转载的官方文档https://apscheduler.readthedocs.io/en/3.x/userguide.html#pausing-and-resuming-jobs
因为我想暂停指定任务,所以用的第二个方法。试了下直接报错:TypeError: pause_job() missing 1 required positional argument: ‘self’
看来BaseScheduler需要先实例化,但是我打算用调度器BlockingScheduler,难道BlockingScheduler没有相关方法吗?去看了下源码,原来BlockingScheduler是继承的BaseScheduler,就是说实例化的BlockingScheduler可以直接调用相关方法。
例子:
from apscheduler.schedulers.blocking import BlockingScheduler
import time
import datetime
def job_a():
print('测试')
def job_b():
# 暂停id为a的任务
scheduler.pause_job(job_id = 'a')
for i in range(10):
print(i)
time.sleep(5)
# 恢复id为a的任务
scheduler.resume_job(job_id = 'a')
if __name__ == '__main__':
scheduler = BlockingScheduler()
scheduler.add_job(job_a, 'interval', seconds = 5, id = 'a')
scheduler.add_job(job_b, 'date', run_date = datetime.datetime.now() + datetime.timedelta(seconds = 20), id = 'b')
scheduler.start()
又去看了下官方文档,发现有BaseScheduler的说明,看来有时间还是应该先看官方文档啊