小编Vol*_*ent的帖子

python asyncio 无法同时运行两个无限函数

我一直在尝试同时运行两个功能,但一个功能似乎永远无法工作,除非我停止另一个功能。第一个函数每 30 秒发送一封电子邮件,而第二个函数每 5 秒打印一条简单的语句。组合起来,每 6 个“Hello Worlds”输出应发送一封电子邮件。

然而,我从来没有收到过电子邮件,除非将打印更改为提前停止,例如 10 秒后结束。我该怎么做才能让两者同时运行而不停止?

async def timer():
    end = time.time() + 30
    while True:
        if time.time() >= end:
            sendmail(name, filepath + "\\" + name, receiver)
            end = time.time() + 30

async def runs():
    while True:
        print("Hello World")
        time.sleep(5)


loop = asyncio.get_event_loop()
loop.create_task(runs())
loop.create_task(timer())
loop.run_forever()
Run Code Online (Sandbox Code Playgroud)

asynchronous python-3.x python-asyncio

4
推荐指数
1
解决办法
1613
查看次数

标签 统计

asynchronous ×1

python-3.x ×1

python-asyncio ×1