Skip to content

Instantly share code, notes, and snippets.

@daviwesley
Created March 10, 2022 15:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save daviwesley/fa7d7293d766d304e5864739dc6763c8 to your computer and use it in GitHub Desktop.
Save daviwesley/fa7d7293d766d304e5864739dc6763c8 to your computer and use it in GitHub Desktop.
import asyncio
import httpx
import time
import csv
start_time = time.time()
async def get_predict(url, params, headers):
# cria uma nova conexão ao invés de usar uma existente como tava antes
# teoricamente criando uma nova conexão é mais lento mais a diferença deve ser pouca
# ou existe um threshold na lib do ssl do python
async with httpx.AsyncClient() as client:
resp = await client.get(url, params=params, headers=headers)
return resp.status_code
with open("lista.csv", newline="") as f:
reader = csv.reader(f)
data = list(reader)
data = [str(i[0].split(";")[0]) for i in data]
prd = False
headers = {"x-api-key": "9f16c2f3-8106-4963-bbca-44706eb6edb8"} if prd else {}
url = (
"https://transcoder-api.itelligencegroup.ai/predict"
if prd
else "http://34.222.202.134:5000/"
)
lista_predict = data[1:]
async def main():
tasks = []
for produto in lista_predict:
params = {"text": produto}
tasks.append(
asyncio.ensure_future(get_predict(url, params=params, headers=headers))
)
predict_resp = await asyncio.gather(*tasks)
for predict in predict_resp:
print(predict)
asyncio.run(main())
print("--- %s seconds ---" % (time.time() - start_time))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment