我在使用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()
apscheduler自带的shutdown(wait=False)会停止所有任务,估计这不是题主想要的结果。
最好是在任务函数getRealtimeData内添加一些关键点判断,若超时则直接return退出任务。