如何使用asyncio异步运行DASH

时间:2019-09-04 10:28:41

标签: plotly-dash python-asyncio

有人使用aysncio for Python成功地管理了Dash应用的运行吗? 任何例子都非常感谢。 我一直在深入研究异步中的事件循环,协同例程和任务。 本质上我想这样做:

main_loop()

1. ASYNC - Collect data from web (async call / avoid blocking)
2. ASYNC - Process data (when data is collected from task1)
3. ASYNC - Update data (when data processed from task2) 
4. Display Data using Dash (this should be running constantly of status task 1,2 and 3)

那么-如何在任务之间进行通信,以及分别运行显示(DASH)? 想法: -2个事件循环 -两线? 问题: -如何在任务之间交流 -如何始终运行DASH应用,而上述event_loop也会永久重复/直到被中断(即getData,ProcessData,UpdateDashDisplay ...)

1 个答案:

答案 0 :(得分:0)

这可能有效。只需为数据收集,处理和更新创建异步功能。然后为破折号创建另一个异步函数。然后像下面这样运行它:

async def web_data():
    # web data code goes here

async def dash_code():
    # Dash code goes here

async def main():
    await asyncio.gather(web_data(), dash_code())

asyncio.run(main())