为了账号安全,请及时绑定邮箱和手机立即绑定

python 的定时任务框架apscheduler如何停止任务?

python 的定时任务框架apscheduler如何停止任务?

慕的地10843 2019-02-15 11:56:26
题目描述有一段代码是这样的:from datetime import datetimeimport osfrom apscheduler.schedulers.blocking import BlockingSchedulerfrom apscheduler.schedulers.background import BackgroundSchedulerdef tick():     print('Tick! The time is: %s' % datetime.now())if __name__ == '__main__':     scheduler = BackgroundScheduler()     scheduler.add_job(tick, 'interval', seconds=10)     print('Press Ctrl+{0} to exit'.format('Break' if os.name == 'nt' else 'C    '))    try:         scheduler.start()    except (KeyboardInterrupt, SystemExit):        pass这段代码运行以后会自动的在后台一直运行下去 就是每10秒打印一下函数那么我要怎么停止这个代码 或是如何动态来管理代码?查了好久,基本你看到的答案都是这样的:job = scheduler.add_job(myfunc, 'interval', minutes=2)   job.remove()   Same, using an explicit job ID:      scheduler.add_job(myfunc, 'interval', minutes=2, id='my_job_id')   scheduler.remove_job('my_job_id')这个就是脚本运行的时候,加了一个任务 然后再把她移除掉????那么我脚本运行了以后,如何找到这个任务去移除掉?请高手指点一下问题补充就是脚本运行了,此刻你把终端关了,去睡觉了…然后第二天再次打开终端,你怎么停止这个任务?或是找到这个任务?如何对这个任务进行操作?
查看完整描述

1 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

在apscheduler中scheduler对象有个get_jobs方法,可以获得所有任务的信息,是1个列表嵌套字典的形式,字典里面有个ID的值就是任务的ID,你根据任务的名称找到对应的ID,然后将它传递给remove_job方法即可。

>>> scheduler.get_jobs()[{...},{...}]


查看完整回答
反对 回复 2019-02-15
  • 1 回答
  • 0 关注
  • 854 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信