运行什么我做想做的事
让我的工作组是一种仪表盘服务器的其中一个可以选择他想要它的仪表板。仪表板包含通常不能由js处理但通过python回调函数处理的图和小部件。保持背景虚化小部件应用
什么是工作
- 散景服务器和一台服务器
- 仪表板运行的背景虚化服务器上的罚款。
我有一个运行的Flask服务器,我可以显示用户选择的dahshboard。仪表板根植一种这样:
from bokeh.embed import autoload_server, Document from flask import Flask, render_template config = {} app = Flask(__name__) app.root("/focusmap") def serve_focusmap(): dashboard = get_focusmap_dashboard() # a bokeh plot and widget layout document = Document() document.add_root(dashboard) document.title = name session = push_session(document, session_id=None) body = autoload_server(None, session_id=session.id) config['currentSession'] = session return render_template("board.html", body=body)
这正常显示仪表板,但因为
session.loop_until_closed()
缺少的地方小部件不工作。
阅读背景虚化服务器文档我红了loop_until_closed
不是由背景虚化的服务器,而是从应用程序处理。
什么是不工作
我无法弄清楚如何使session.loop_until_closed()
不会阻塞应用程序。
我曾尝试:
@app.after_request
def loopSession(response):
global config
session = config.get('currentSession',None)
if session:
session.loop_until_closed()
return response
但是,当然,它挡住了应用。
有人有经验吗?我应该/可以在子流程中运行loop_until_closed吗?
好的。谜题中缺少一些东西,并且不容易找到,是如何访问http请求以使散景应用程序的情况依赖于显示用户板的顺序:例如app?board = focusmap。现在我有了这个(http://bokeh.pydata.org/en/latest/docs/user_guide/server.html#accessing-the-http-request)我可以将该应用程序嵌入到iframe中,并使用正确的src – user3240484
FWIW这在http://bokeh.pydata.org/en/latest/docs/user_guide/server.html#accessing-the-http-request中有描述如果有其他地方,或者可以改进它的地方,请告诉我们在GitHub上。另外在'0.12.4'中的FYI有一个查询参数和'--num-threads'大于1的错误。这个问题在master和最新的开发版本中是固定的(并且将在0.12.5中为几周) – bigreddot
另请注意,从'0.12.5'开始,'request.arguments'(即查询参数)是可用请求的* only *部分。 – bigreddot