相关疑难解决方法(0)

如何轮询python asyncio任务状态

使用gevent,我可以像这样监视长时间运行的功能:

    greenlet = gevent.Greenlet(long_running_task, *args, **kwargs)
    greenlet.start()
    while not greenlet.ready():
        send_heartbeat()
        gevent.sleep(heartbeat_interval)
    if greenlet.successful():
        send_success(greenlet.value)
    else:
        send_failure(exception=greenlet.exception)
Run Code Online (Sandbox Code Playgroud)

我该如何使用asyncio?我尝试了以下方法,但遇到了麻烦:

    loop = asyncio.get_event_loop()
    async def send_heartbeat(heartbeat_interval=15):
        send_heartbeat()
        asyncio.sleep(heartbeat_interval)

    await asyncio.sleep(1)
    loop.run_until_complete(asyncio.wait([long_running_task(*args, **kwargs), send_heartbeat()]))
    loop.close()
Run Code Online (Sandbox Code Playgroud)

我将如何改变它以获得预期的行为?

python gevent python-asyncio

2
推荐指数
1
解决办法
1610
查看次数

标签 统计

gevent ×1

python ×1

python-asyncio ×1