如何终结apscheduler里的线程?

我在使用apscheduler来做定时任务,每分钟从接口取数据存入redis,然而这个接口有时候会因为各种原因导致阻塞,使得下一分钟的任务无法执行,请问有什么方法可以给函数getRealtimeData加个timeout,一旦超时则终结此线程。

if __name__ == '__main__':
    scheduler = TornadoScheduler()
    scheduler.add_job(getRealtimeData, 'cron', second=40)
    scheduler.start()
    print 'Press Ctrl+{} to exit.'.format('Break' if os.name == 'nt' else 'C')
    IOLoop.instance().start()
阅读 6.9k
1 个回答

apscheduler自带的shutdown(wait=False)会停止所有任务,估计这不是题主想要的结果。

最好是在任务函数getRealtimeData内添加一些关键点判断,若超时则直接return退出任务。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题