Ошибка с асинхронным измерением производительности в Питоне

import time
import asyncio
import aiohttp

# Настраиваемые параметры
db_request_duration = 0.2  # Длительность запроса в БД
response_processing_duration = 0.1  # Время обработки запроса и формирование ответа
async_request_url = 'https://httpbin.org/delay/0.1'  # URL для асинхронного запроса

# === Синхронное взаимодействие ===
def sync_request():
    """Моделирование синхронного запроса."""
    time.sleep(db_request_duration)  # Моделирование запроса в БД
    time.sleep(response_processing_duration)  # Моделирование обработки запроса и ответа

def measure_sync_performance(duration):
    """Измерение производительности синхронного взаимодействия."""
    end_time = time.time() + duration
    request_count = 0

    while time.time() < end_time:
        sync_request()
        request_count += 1

    return request_count


# === Асинхронное взаимодействие ===
async def async_request(session):
    """Моделирование асинхронного запроса."""
    async with session.get(async_request_url) as response:
        await response.text()

async def measure_async_performance(duration):
    """Измерение производительности асинхронного взаимодействия."""
    print("Начало асинхронного измерения производительности...")
    end_time = time.time() + duration
    request_count = 0

    async with aiohttp.ClientSession() as session:
        tasks = []
        while time.time() < end_time:
            tasks.append(asyncio.create_task(async_request(session)))
            request_count += 1

        await asyncio.gather(*tasks)
    print("Конец асинхронного измерения производительности...")
    return request_count


# === Точка входа ===
if __name__ == "__main__":
    duration = 10  # Время измерения в секундах

    # Синхронное взаимодействие
    print("Измерение производительности синхронного взаимодействия...")
    sync_count = measure_sync_performance(duration)
    print(f"Синхронных запросов обработано: {sync_count}")

    # Асинхронное взаимодействие
    print("\nИзмерение производительности асинхронного взаимодействия...")
    async_count = asyncio.run(measure_async_performance(duration))
    print(f"Асинхронных запросов обработано: {async_count}")

    #Вот задание:

Необходимо разработать программу для моделирования взаимодействия двух информационных систем синхронным и асинхронным способом и определить максимальное количество обработанных запросов за 10 секунд. Настраиваемые параметры:

  1. Длительность запроса в БД (начальное значение – 0,2 с);
  2. Время обработки запроса и формирование ответа (начальное значение – 0,1 с). почему то выводит ответ с синхронным способом, но не выводит с асинхронным.. не знаю, что делать

Ответы (0 шт):