小编spy*_*der的帖子

asyncio 任务已被销毁但正在挂起

我正在编写一个示例程序,它从数据源(csv 或 rdbms)中读取数据块,进行一些转换并通过套接字将其发送到服务器。

但因为 csv 非常大,出于测试目的,我想在几个块之后中断读取。不幸的是,出了问题,我不知道是什么以及如何解决它。也许我必须取消一些活动,但现在确定在哪里以及如何取消。我收到以下错误:

Task was destroyed but it is pending!
task: <Task pending coro=<<async_generator_athrow without __name__>()>>
Run Code Online (Sandbox Code Playgroud)

示例代码是:

import asyncio
import json

async def readChunks():
  # this is basically a dummy alternative for reading csv in chunks
  df = [{"chunk_" + str(x) : [r for r in range(10)]} for x in range(10)]
  for chunk in df:
    await asyncio.sleep(0.001)
    yield chunk

async def send(row):
    j = json.dumps(row)
    print(f"to be sent: {j}")
    await asyncio.sleep(0.001)


async def main():
    i = 0 …
Run Code Online (Sandbox Code Playgroud)

python asynchronous event-loop coroutine python-asyncio

5
推荐指数
1
解决办法
4881
查看次数