-
Notifications
You must be signed in to change notification settings - Fork 404
feat: added configurable connection retries for DB and Redis readiness #214
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: added configurable connection retries for DB and Redis readiness #214
Conversation
- Introduced redis_isready.py to wait for Redis connection readiness. - Updated main.py to wait for both database and Redis to be ready before proceeding. - Added tests for Redis readiness functionality. Signed-off-by: reevebarreto <reevemarcbarreto@gmail.com>
git add --chmod=+x mcpgateway/utils/redis_isready.py
chmod +x mcpgateway/utils/redis_isready.py`
INFO:db_isready:Probing postgresql at postgres:5432/mcp (timeout=2s, interval=2.0s, max_tries=3) INFO:db_isready:Database ready after 0.01s (attempt 1) INFO:redis_isready:Redis ready (attempt 1) Still missing: Not tested yet:
Fixing lint issues: Issue 2: run_in_executor argument type (pyrefly) |
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
IBM#214) * feat: add configurable connection retries for DB and Redis readiness - Introduced redis_isready.py to wait for Redis connection readiness. - Updated main.py to wait for both database and Redis to be ready before proceeding. - Added tests for Redis readiness functionality. Signed-off-by: reevebarreto <reevemarcbarreto@gmail.com> * Linting fixes and autoflake etc. Signed-off-by: Mihai Criveti <crivetimihai@gmail.com> * cli entrypoint Signed-off-by: Mihai Criveti <crivetimihai@gmail.com> --------- Signed-off-by: reevebarreto <reevemarcbarreto@gmail.com> Signed-off-by: Mihai Criveti <crivetimihai@gmail.com> Co-authored-by: Mihai Criveti <crivetimihai@gmail.com>
IBM#214) * feat: add configurable connection retries for DB and Redis readiness - Introduced redis_isready.py to wait for Redis connection readiness. - Updated main.py to wait for both database and Redis to be ready before proceeding. - Added tests for Redis readiness functionality. Signed-off-by: reevebarreto <reevemarcbarreto@gmail.com> * Linting fixes and autoflake etc. Signed-off-by: Mihai Criveti <crivetimihai@gmail.com> * cli entrypoint Signed-off-by: Mihai Criveti <crivetimihai@gmail.com> --------- Signed-off-by: reevebarreto <reevemarcbarreto@gmail.com> Signed-off-by: Mihai Criveti <crivetimihai@gmail.com> Co-authored-by: Mihai Criveti <crivetimihai@gmail.com>
IBM#214) * feat: add configurable connection retries for DB and Redis readiness - Introduced redis_isready.py to wait for Redis connection readiness. - Updated main.py to wait for both database and Redis to be ready before proceeding. - Added tests for Redis readiness functionality. Signed-off-by: reevebarreto <reevemarcbarreto@gmail.com> * Linting fixes and autoflake etc. Signed-off-by: Mihai Criveti <crivetimihai@gmail.com> * cli entrypoint Signed-off-by: Mihai Criveti <crivetimihai@gmail.com> --------- Signed-off-by: reevebarreto <reevemarcbarreto@gmail.com> Signed-off-by: Mihai Criveti <crivetimihai@gmail.com> Co-authored-by: Mihai Criveti <crivetimihai@gmail.com>
β¨ Feature / Enhancement PR
π Epic / Issue
Closes #179
[Feature Request]: Configurable Connection Retries for DB and Redis
π Summary (1β2 sentences)
Adds configurable connection retry logic for both Redis and the database on application startup. This ensures the services wait for dependencies to be ready, improving robustness during cold starts or in containerized environments.
π§ͺ Checks
make lintpassesmake testpassesπ Notes (optional)
redis_isready.py, modeled afterdb_isready.py, to handle Redis readiness.main.pyto call bothwait_for_db_ready()andwait_for_redis_ready()before starting the app.tests/unit/mcpgateway/utils/test_redis_isready.py).flowchart TD A["main.py"] --> B["wait_for_db_ready()"] B --> C["wait_for_redis_ready()"] B -->|ping| D[(Database)] C -->|ping| E[(Redis)]