Считайте число активных операций и его максимум. Значение peak больше единицы подтверждает перекрытие клиентских операций; одно лишь короткое общее время не является достаточным доказательством.
Как проверить конкурентное выполнение API-запросов
Считайте число активных операций и его максимум. Значение peak больше единицы подтверждает перекрытие клиентских операций; одно лишь короткое общее время не является достаточным доказательством.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Нужно убедиться, что клиент запускает несколько запросов с перекрывающимся ожиданием, а не выполняет их последовательно. Покажите проверку на локальном асинхронном mock без реального API и ключей.
Ответ
Считайте число активных операций и его максимум. Значение peak больше единицы подтверждает перекрытие клиентских операций; одно лишь короткое общее время не является достаточным доказательством.
Учебная проверка:
import asyncio
async def main():
active = peak = 0
async def mock_request():
nonlocal active, peak
active += 1
peak = max(peak, active)
try:
await asyncio.sleep(0.01)
finally:
active -= 1
await asyncio.gather(*(mock_request() for _ in range(3)))
print(peak) # 3
asyncio.run(main())
Для реального сервера нужны его timestamps или trace: конкурентный клиент не доказывает параллельную обработку сервером. Секреты в пример и логи не добавляются.