From 09983a2280420b56594dc3eecf0111e998108433 Mon Sep 17 00:00:00 2001 From: Zhongsheng Ji <9573586@qq.com> Date: Thu, 6 Jun 2024 16:27:15 +0800 Subject: [PATCH] Support username and password in url (#5) * Support username and password in url * Update readme --- README.md | 4 ++++ brq/tools.py | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index 2e35cf9..ecf26bf 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,8 @@ async def main(): db=int(os.getenv("REDIS_DB", 0)), cluster=bool(os.getenv("REDIS_CLUSTER", "false") in ["True", "true", "1"]), tls=bool(os.getenv("REDIS_TLS", "false") in ["True", "true", "1"]), + username=os.getenv("REDIS_USERNAME", ""), + password=os.getenv("REDIS_PASSWORD", ""), ) async with get_redis_client(redis_url) as async_redis_client: await Producer(async_redis_client).run_job("echo", ["hello"]) @@ -80,6 +82,8 @@ async def main(): db=int(os.getenv("REDIS_DB", 0)), cluster=bool(os.getenv("REDIS_CLUSTER", "false") in ["True", "true", "1"]), tls=bool(os.getenv("REDIS_TLS", "false") in ["True", "true", "1"]), + username=os.getenv("REDIS_USERNAME", ""), + password=os.getenv("REDIS_PASSWORD", ""), ) async with get_redis_client(redis_url) as async_redis_client: daemon = Daemon(Consumer(async_redis_client, echo)) diff --git a/brq/tools.py b/brq/tools.py index 3f3b527..704aafe 100644 --- a/brq/tools.py +++ b/brq/tools.py @@ -42,6 +42,8 @@ def get_redis_url( db: int = 0, cluster: bool = False, tls: bool = False, + username: str = "", + password: str = "", ): if not cluster: url = f"{host}:{port}/{db}" @@ -49,6 +51,9 @@ def get_redis_url( logger.debug("Cluster mode, no need to specify db") url = f"{host}:{port}" + if username or password: + url = f"{username}:{password}@{url}" + if tls: return f"rediss://{url}" else: