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

题目描述

有一段代码是这样的:

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')

这个就是脚本运行的时候,加了一个任务 然后再把她移除掉????
那么我脚本运行了以后,如何找到这个任务去移除掉?

请高手指点一下

问题补充

就是脚本运行了,此刻你把终端关了,去睡觉了…然后第二天再次打开终端,你怎么停止这个任务?或是找到这个任务?如何对这个任务进行操作?


慕的地10843
浏览 855回答 1
1回答

隔江千里

在apscheduler中scheduler对象有个get_jobs方法,可以获得所有任务的信息,是1个列表嵌套字典的形式,字典里面有个ID的值就是任务的ID,你根据任务的名称找到对应的ID,然后将它传递给remove_job方法即可。>>> scheduler.get_jobs()[{...},{...}]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python