Python下定时任务框架APScheduler的使用(3)

删除调度器中的任务有可以用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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/9479dee39fab04fa4a9e97319ff4af5e.html