我想在我的Bokeh服务器中安排一个定期的非阻塞任务,例如能够在必要时重新加载数据(无需重启服务器)。
有一些功能可以安排定期任务,例如add_periodic_callback
,但是它位于会话级别(文档)而不是应用程序代码中。
如何在应用代码级别执行此操作?我不希望我的每个会话重新加载数据,只需要一劳永逸地完成操作。
我尝试使用龙卷风定期回调,但我最终遇到竞争条件,如此票证中所述:https://github.com/bokeh/bokeh/issues/4000
# example of bad code using Tornado, which creates race condition
...
# see below: my_func_to_reload_data_async() is used to reload data asynchronously
bokeh_server.start()
from tornado.ioloop import PeriodicCallback
pcallback = PeriodicCallback(my_func_to_reload_data_async, 3000, io_loop=bokeh_server.io_loop)
pcallback.start()
bokeh_server.io_loop.start()
由于