Я пытаюсь выполнять сложные задачи ввода-вывода одновременно:
import asyncio
async def io_operation(param: int):
await asyncio.sleep(1)
return param ** 2
async def main():
io_calls = [io_operation(i) for i in range(10)]
for i in asyncio.as_completed(io_calls):
result = await i
print(result) # should also return the corresponding call parameters
if __name__ == '__main__':
asyncio.run(main())
Теперь, поскольку я не могу заранее знать, в каком порядке будут результаты, я бы хотел получить информацию о параметрах вызова сопрограммы, возвращаемых asyncio.as_completed
. Есть ли способ сделать это, не требующий возврата параметров в функции io_operation()
?
Редактировать: Я отправляю HTTP-запросы с различными параметрами на сайт, используя aiohttp
. После этого мне нужно сопоставить результаты с исходными запросами.