我试图理解异步编程。
所以我做了一个小的异步函数。
我做的功能是,它从多个网站读取内容,并将它们异步发送到特定的URL。
我写了一个类似这样的异步函数
import requests
import asyncio
getter_sender_list = [
('https://google.com', 'http://localhost:5000/receiver_1'),
('https://yahoo.com', 'http://localhost:5000/receiver_2'),
('https://stackoverflow.com', 'http://localhost:5000/receiver_3'),
]
def main():
async def transfer_data(getter, sender):
r = await loop.run_in_executor(None, requests.get(getter))
data = r.content
res = await loop.run_in_executor(None, requests.post(sender, data=data))
print('Single Transfer Complete')
async def transfer_all():
coroutines = [transfer_data(getter, sender) for getter, sender in getter_sender_list]
await asyncio.gather(*coroutines)
print('TRANSFER COMPLETE')
loop = asyncio.get_event_loop()
loop.run_until_complete(transfer_all())
我采取的方法正确吗?
或者我需要考虑一些不同的东西吗?