mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-02 13:45:10 -05:00
44 lines
1.2 KiB
Python
Executable File
44 lines
1.2 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""
|
|
Simple script which attempts to ping the Redis broker as set in the environment for
|
|
a certain number of times, waiting a little bit in between
|
|
|
|
"""
|
|
import os
|
|
import sys
|
|
import time
|
|
from typing import Final
|
|
|
|
from redis import Redis
|
|
|
|
if __name__ == "__main__":
|
|
MAX_RETRY_COUNT: Final[int] = 5
|
|
RETRY_SLEEP_SECONDS: Final[int] = 5
|
|
|
|
REDIS_URL: Final[str] = os.getenv("PAPERLESS_REDIS", "redis://localhost:6379")
|
|
|
|
print("Waiting for Redis...", flush=True)
|
|
|
|
attempt = 0
|
|
with Redis.from_url(url=REDIS_URL) as client:
|
|
while attempt < MAX_RETRY_COUNT:
|
|
try:
|
|
client.ping()
|
|
break
|
|
except Exception as e:
|
|
print(
|
|
f"Redis ping #{attempt} failed.\n"
|
|
f"Error: {str(e)}.\n"
|
|
f"Waiting {RETRY_SLEEP_SECONDS}s",
|
|
flush=True,
|
|
)
|
|
time.sleep(RETRY_SLEEP_SECONDS)
|
|
attempt += 1
|
|
|
|
if attempt >= MAX_RETRY_COUNT:
|
|
print("Failed to connect to redis using environment variable PAPERLESS_REDIS.")
|
|
sys.exit(os.EX_UNAVAILABLE)
|
|
else:
|
|
print("Connected to Redis broker.")
|
|
sys.exit(os.EX_OK)
|