问题描述
def fetchData(data):
headers = {
'Connection': 'keep-alive','Accept': '*/*','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/85.0.4183.121 Safari/537.36','X-Requested-With': 'XMLHttpRequest','sec-fetch-site': 'same-origin','sec-fetch-mode': 'cors','Sec-Fetch-Dest': 'empty','Accept-Language': 'en-US,en;q=0.9','Content-Type': 'application/json',}
params = (
('Name',data['lastName']),('type','P'),('_','1603183755873'),)
resp = requests.get('someurl',params=params,headers=headers,proxies=generate_random_proxy())
return resp
with concurrent.futures.ThreadPoolExecutor(max_workers=30) as executor:
loop = asyncio.get_event_loop()
futures = [
loop.run_in_executor(
executor,functools.partial(fetchData,data=i)
)
for i in fileData
]
for response in await asyncio.gather(*futures):
output.append(response.json())
当我使用functools.partial(fetchData,data=i)
时,似乎花了更长的时间,与使用时相比,花了将近102秒
loop.run_in_executor(
executor,requests.get,'someurl?name={name}&type=P'.format(name=i['lastName']),headers,)
花了大约14秒钟...我基本上是在函数fetchData中调用request.get,为什么会有如此巨大的速度差异?我打错了吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)