我正在编写一个示例程序,它从数据源(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)