python apscheduler 没有关闭

python apscheduler not shutting down

我试图通过删除 job 并完全关闭它来停止 运行 上的 apscheduler!

None 个正在运行,我的函数 expire_data 仍然被触发

def process_bin(value):
    print "Stored:",pastebin.value
    print "Will expire in",pastebin_duration.value,"seconds!"

    if pastebin_duration>=0:
        scheduler = BlockingScheduler()
        job=scheduler.add_job(expire_data, 'interval', seconds=5)
        scheduler.start()
        job.remove()
        scheduler.shutdown()

def expire_data():
    print "Delete data!"

我该如何阻止它?

Question: I'm trying to stop the apscheduler from running

您正在使用 BlockingScheduler,因此您不能。

APScheduler BlockingScheduler

BlockingScheduler 是最简单的调度程序。
它 运行 在前台,所以当您调用 start() 时, 调用永远不会 returns.


Read about Choosing the right scheduler

  • BlockingScheduler:当调度程序是进程中唯一的东西时使用 运行ning
  • BackgroundScheduler:当您不使用以下任何框架并希望调度程序 运行 在应用程序
  • 的后台运行时使用
  • AsyncIOScheduler:如果您的应用程序使用 asyncio 模块则使用
  • GeventScheduler:如果您的应用程序使用 gevent
  • ,请使用
  • TornadoScheduler:在构建 Tornado 应用程序时使用
  • TwistedScheduler:在构建 Twisted 应用程序时使用
  • QtScheduler:在构建 Qt 应用程序时使用