From f1d3afcccaa220d9064755f7eb8a982c9e522cb2 Mon Sep 17 00:00:00 2001 From: Miles Kane Date: Thu, 26 Mar 2026 22:21:07 -0500 Subject: [PATCH] feat: add request delay configuration and logging in main.py --- src/python_response_time/core/config.py | 3 +++ src/python_response_time/main.py | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/src/python_response_time/core/config.py b/src/python_response_time/core/config.py index d3892fa..29513f3 100644 --- a/src/python_response_time/core/config.py +++ b/src/python_response_time/core/config.py @@ -21,6 +21,9 @@ class Settings(BaseSettings): TIMEOUT: Annotated[ float, Field(gt=0, le=120, description="Request timeout in seconds") ] = 10.0 + REQUEST_DELAY: Annotated[ + float, Field(gt=0, le=60, description="Delay between requests in seconds") + ] = 0.1 LOG_LEVEL: Annotated[ str, Field(pattern="^(DEBUG|INFO|WARNING|ERROR|CRITICAL)$") ] = "INFO" diff --git a/src/python_response_time/main.py b/src/python_response_time/main.py index 8395c6a..848a918 100644 --- a/src/python_response_time/main.py +++ b/src/python_response_time/main.py @@ -12,7 +12,13 @@ def run_app(): """Run a simple HTTP benchmark against the configured target URL.""" + logger.info(f"Target URL: {app_settings.TARGET_URL}") + logger.info(f"Number of Requests: {app_settings.NUM_REQUESTS}") + logger.info(f"Concurrency: {app_settings.CONCURRENCY}") + logger.info(f"Timeout: {app_settings.TIMEOUT} seconds") + logger.info(f"Request Delay: {app_settings.REQUEST_DELAY} seconds") logger.info("Starting HTTP benchmark...") + for i in range(app_settings.NUM_REQUESTS): start_time = time.time() try: @@ -26,6 +32,8 @@ def run_app(): ) except requests.RequestException as e: logger.error(f"Request {i + 1} failed: {e}") + finally: + time.sleep(app_settings.REQUEST_DELAY) if __name__ == "__main__":