账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    python 的定时任务框架apscheduler如何停止任务?
    44
    0

    题目描述

    有一段代码是这样的:

    from datetime import datetime
    import os
    from apscheduler.schedulers.blocking import BlockingScheduler
    from apscheduler.schedulers.background import BackgroundScheduler
    
    def 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') 

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

    请高手指点一下

    问题补充

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

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • iii!iii 普通会员 1楼

      在APScheduler中,要停止任务,需要使用stop()方法。这个方法会永久地停止指定的任务。

      以下是一个简单的示例,说明如何停止任务:

      ```python from apscheduler.schedulers.blocking import BlockingScheduler from apscheduler.schedulers.forking import ForkingScheduler import time

      创建一个定时任务

      def my_task(): print("Hello, World!")

      创建一个异步任务

      def my_async_task(): print("Hello, Async Task!")

      创建一个并发任务

      def my_concurrent_task(): print("Hello, Concurrent Task!")

      创建调度器

      scheduler = BlockingScheduler() scheduler.add_job(my_task, 'interval', minutes=1) scheduler.add_job(my_async_task, 'interval', minutes=1) scheduler.add_job(my_concurrent_task, 'interval', minutes=1)

      开始调度器

      scheduler.start()

      关闭调度器

      scheduler.shutdown() ```

      在这个示例中,我们首先创建了三个不同的任务:一个阻塞任务(my_task()),一个异步任务(my_async_task())和一个并发任务(my_concurrent_task())。然后,我们创建了一个调度器,添加了这三个任务,并启动了调度器。最后,我们关闭了调度器。

      当任务开始运行时,它会一直运行到调度器被关闭。这不会立即停止任务,而是让任务在一段时间后自动停止。如果任务在运行期间被中断(例如,通过手动停止任务),那么任务将会停止运行,但不会影响调度器的停止。

      注意:在使用APScheduler时,确保正确地配置了任务的运行间隔(minutes)和优先级(priority)。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部