Я пытаюсь отправить 6 запросов API за один сеанс и записать, сколько времени это заняло. Сделайте это n раз. Я храню количество времени в списке. После этого я распечатываю некоторую информацию списка и визуализирую данные списка.
- Что работает: загрузка в формате .py, удаление ссылок ipython и запуск кода в виде сценария командной строки.
- Что также работает: ручной запуск ячеек и ячейка с ошибками после завершения ячейки цикла.
- Что не работает: перезапуск и запуск всех ячеек в блокноте jupyter. Кажется, последняя ячейка не ждет предыдущей;последний, кажется, выполняется первым, и жалуются на пустой список. Ошибка на изображении ниже.
Ячейка 1:
# submit 6 models at the same time
# using support / first specified DPE above
auth = aiohttp.BasicAuth(login=USERNAME, password=API_TOKEN)
async def make_posts():
for i in range(0, 6):
yield df_input['deployment_id'][i]
async def synch6():
#url = "%s/predApi/v1.0/deployments/%s/predictions" % (PREDICTIONSENDPOINT,DEPLOYMENT_ID)
async with aiohttp.ClientSession(auth=auth) as session:
post_tasks = []
# prepare the coroutines that post
async for x in make_posts():
post_tasks.append(do_post(session, x))
# now execute them all at once
await asyncio.gather(*post_tasks)
async def do_post(session, x):
url = "%s/predApi/v1.0/deployments/%s/predictions" % (PREDICTIONSENDPOINT, x)
async with session.post(url, data = df_scoreme.to_csv(), headers=PREDICTIONSHEADERS_csv) as response:
data = await response.text()
#print (data)
Ячейка 2:
chonk_start = (datetime.datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%S.000Z"))
perf1 = []
n = 100
for i in range(0, n):
start_ts = round(time.time() * 1000)
loop = asyncio.get_event_loop()
loop.run_until_complete(synch6())
end_ts = round(time.time() * 1000)
perf1.append(end_ts - start_ts)
Ячейка 3:
perf_string(perf1, 'CHONKS')
Явная ошибка (см. Изображение), по-видимому, является просто результатом попытки работать с пустым списком. Список кажется пустым, потому что эта ячейка выполняется до того, как тестовая ячейка заполняет список - хотя я не знаю почему. Кажется, это проблема только внутри ноутбука.
РЕДАКТИРОВАТЬ: При дальнейшем тестировании ... это работает нормально на моем локальном (python3, mac) ноутбуке Jupyter. Где он терпит неудачу - на ноутбуке AWS Sagemaker conda python3.