0

我正在尝试在一个应用程序中运行 QUART 和 NATS 客户端。将此代码用于 nats 部分[https://github.com/nats-io/stan.py/issues/12#issuecomment-400865266][1]

我的主要功能包含:

    asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
    loop = asyncio.new_event_loop()
    asyncio.set_event_loop(loop)

    loop.run_until_complete(serve(app, config))
    loop.run_until_complete(run_nats(loop))
    loop.close()

但它只是运行 QUART 并且 nats 被阻止。我该如何解决这个问题?

信息:

  • 蟒蛇 3.9
  • 异步 nats 客户端 0.11.4
  • 夸脱 0.11.4
4

1 回答 1

0

loop.run_until_complete行将运行并阻塞,直到它完成,在这种情况下,首先运行 Quart(直到它完成),然后是 nats。要同时运行两者,我通常运行使用collect

loop.run_until_complete(asyncio.gather(serve(app, config), run_nats(loop))
于 2021-03-19T15:24:42.250 回答