51 lines
1.7 KiB
Python
51 lines
1.7 KiB
Python
import os
|
|
import redis
|
|
|
|
from typing import Optional
|
|
|
|
|
|
class Env:
|
|
REDIS_HOST: str = os.getenv("REDIS_HOST", "redis")
|
|
REDIS_PORT: int = int(os.getenv("REDIS_PORT", "6379"))
|
|
REDIS_DB: int = int(os.getenv("REDIS_DB", "0"))
|
|
REDIS_USERNAME: Optional[str] = os.getenv("REDIS_USERNAME")
|
|
REDIS_PASSWORD: Optional[str] = os.getenv("REDIS_PASSWORD")
|
|
REDIS_STREAM_PUBLISH: str = os.getenv("REDIS_STREAM_PUBLISH", "DEFAULT:REGISTER:DONTUSE")
|
|
REDIS_STREAM_TASKS: str = os.getenv("REDIS_STREAM_TASKS", "DEFAULT:REGISTER:DONTUSE")
|
|
|
|
BATCH_SIZE: int = int(os.getenv("BATCH_SIZE", "5"))
|
|
MAX_RETRIES: int = int(os.getenv("MAX_RETRIES", "3"))
|
|
IDLE_RECLAIM_MS: int = int(os.getenv("IDLE_RECLAIM_MS", "30000"))
|
|
|
|
SQLITE_PATH: str = os.getenv("SQLITE_PATH", "/app/data/queue.db")
|
|
|
|
class RedisConfig:
|
|
def __init__(
|
|
self,
|
|
host: str = Env.REDIS_HOST,
|
|
port: int = Env.REDIS_PORT,
|
|
db: int = Env.REDIS_DB,
|
|
username: Optional[str] = Env.REDIS_USERNAME,
|
|
password: Optional[str] = Env.REDIS_PASSWORD,
|
|
batch_size: int = Env.BATCH_SIZE,
|
|
max_retries: int = Env.MAX_RETRIES,
|
|
idle_reclaim_ms: int = Env.IDLE_RECLAIM_MS,
|
|
):
|
|
self.host = host
|
|
self.port = port
|
|
self.db = db
|
|
self.username = username
|
|
self.password = password
|
|
self.batch_size = batch_size
|
|
self.max_retries = max_retries
|
|
self.idle_reclaim_ms = idle_reclaim_ms
|
|
|
|
def client(self) -> redis.Redis:
|
|
return redis.Redis(
|
|
host=self.host,
|
|
port=self.port,
|
|
db=self.db,
|
|
username=self.username,
|
|
password=self.password,
|
|
)
|