Python 在asyncio/Quart中安全地等待两个事件源

Python 在asyncio/Quart中安全地等待两个事件源,python,websocket,python-asyncio,quart,Python,Websocket,Python Asyncio,Quart,是一个pythonweb框架,它在Python的asynciocoroutine系统之上重新实现了flaskapi。在我的特殊情况下,我有一个Quart-websocket端点,它不仅应该有一个传入事件源,而且应该有两个可能的事件源,它们应该继续异步循环 具有一个事件源的示例: 从夸脱导入夸脱,websocket app=夸脱(\uuuuuu名称\uuuuuuuuu) @app.websocket(“/echo”) def echo(): 尽管如此: 传入消息=等待websocket.recei

是一个pythonweb框架,它在Python的
asyncio
coroutine系统之上重新实现了flaskapi。在我的特殊情况下,我有一个Quart-websocket端点,它不仅应该有一个传入事件源,而且应该有两个可能的事件源,它们应该继续异步循环

具有一个事件源的示例:

从夸脱导入夸脱,websocket
app=夸脱(\uuuuuu名称\uuuuuuuuu)
@app.websocket(“/echo”)
def echo():
尽管如此:
传入消息=等待websocket.receive()
等待websocket.send(传入消息)
取自

此示例有一个源:传入消息流。但是,如果我有两个可能的源,一个是
await websocket.receive()
,另一个是
await system.get\u next\u external\u notification()
,那么正确的模式是什么呢

如果他们中的任何一个到达,我想发送一条websocket消息。
我想我必须使用,但是如何确保我没有丢失任何数据(例如,对于
websocket.receive()
system.get\u next\u external\u notification()
几乎同时完成的竞态条件)?这种情况下正确的模式是什么