/
Ulyanoff
/
asyncAPI
Обзор
Документация
Войти
/
Ulyanoff
/
asyncAPI
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/serv/req_duration.py
22 строки
800 B
Ulyanoff
Initial commit
01 апр 2024, 12:45
01 апр 2024, 12:45
1b54c2c
Код
Авторство
О чём код?
# -*- coding: utf-8 -*- import logging import time from starlette.requests import Request from config.app_mdl import cfg logger = logging.getLogger() # Middleware async def request_duration(request: Request, call_next): """Подсчитать и залогировать длительность выполнения запроса (если надо)""" if logging.root.getEffectiveLevel() >= cfg.timing_int: start_time = time.perf_counter() response = await call_next(request) # передача запроса на дальнейшую обработку (конкретно - в эндпойнт) logger.debug(f"Request duration = {round(time.perf_counter() - start_time, 3)} sec") else: response = await call_next(request) return response