删除调度器中的任务有可以用remove_job()根据job ID来删除指定任务或者使用remove(),如果使用remove()需要事先保存在添加任务时返回的实例对象,任务删除后就不会在执行。
注意:通过scheduled_job()添加的任务只能使用remove_job()进行删除。
例如:
job = scheduler.add_job(my_job, 'interval', seconds=5,)
job.remove()
或者
scheduler.add_job(my_job, 'interval', seconds=5,)
scheduler.remove_job('my_job')
5).暂停与恢复任务:
暂停与恢复任务可以直接操作任务实例或者调度器来实现。当任务暂停时,它的运行时间会被重置,暂停期间不会计算时间。
暂停任务:
apscheduler.job.Job.pause()
apscheduler.schedulers.base.BaseScheduler.pause_job()
恢复任务
apscheduler.job.Job.resume()
apscheduler.schedulers.BaseScheduler.resume_job()
6).启动调度器
可以使用start()方法启动调度器,BlockingScheduler需要在初始化之后才能执行start(),对于其他的Scheduler,调用start()方法都会直接返回,然后可以继续执行后面的初始化操作。
例如:
from apscheduler.schedulers.blocking import BlockingScheduler
def my_job():
print "Hello world!"
scheduler = BlockingScheduler()
scheduler.add_job(my_job, 'interval', seconds=5)
scheduler.start()
7).关闭调度器:
使用下边方法关闭调度器:
scheduler.shutdown()
默认情况下调度器会关闭它的任务存储和执行器,并等待所有正在执行的任务完成,如果不想等待,可以进行如下操作:
scheduler.shutdown(wait=False)
注意:
当出现No handlers could be found for logger “apscheduler.scheduler”次错误信息时,说明没有 logging模块的logger存在,所以需要添加上,对应新增内容如下所示(仅供参):
import logging
logging.basicConfig(
level=logging.DEBUG,
format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
datafmt='%a, %d %b %Y %H:%M:%S',
filename='/var/log/aaa.txt',
filemode='a'
)
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx