mengqiankang 1 месяц назад
Родитель
Сommit
415f913648
6 измененных файлов с 35 добавлено и 7 удалено
  1. 1 0
      .env
  2. 3 2
      alien_gateway/config.py
  3. 8 2
      alien_util/celery_app.py
  4. 6 2
      alien_util/redis_client.py
  5. 16 1
      poetry.lock
  6. 1 0
      pyproject.toml

+ 1 - 0
.env

@@ -12,6 +12,7 @@ DB_NAME="alien_uat"
 REDIS_SENTINELS=192.168.2.251:36379,192.168.2.252:36379,192.168.2.253:36379
 REDIS_MASTER_NAME=mymaster
 REDIS_PASSWORD=my_password_123
+REDIS_SENTINEL_PASSWORD=my_password_123
 # 下游服务地址
 STORE_BASE_URL="http://192.168.2.251:38001"# alien_store 服务地址
 

+ 3 - 2
alien_gateway/config.py

@@ -24,10 +24,11 @@ class Settings(BaseSettings):
     # Redis Sentinel 高可用配置
     # 例: REDIS_SENTINELS=192.168.2.251:36379,192.168.2.252:36379,192.168.2.253:36379
     REDIS_SENTINELS: str = os.getenv("REDIS_SENTINELS", "")
-    REDIS_MASTER_NAME: str = os.getenv("REDIS_MASTER_NAME", "uatmaster")
+    REDIS_MASTER_NAME: str = os.getenv("REDIS_MASTER_NAME", "")
     REDIS_PASSWORD: str = os.getenv("REDIS_PASSWORD", "")
     REDIS_DB: int = int(os.getenv("REDIS_DB", "0"))
-
+    REDIS_SENTINEL_USERNAME: str = os.getenv("REDIS_SENTINEL_USERNAME", "")
+    REDIS_SENTINEL_PASSWORD: str = os.getenv("REDIS_SENTINEL_PASSWORD", "")
     # 下游服务地址
     STORE_BASE_URL: str = os.getenv("STORE_BASE_URL")  # alien_store 服务地址
 

+ 8 - 2
alien_util/celery_app.py

@@ -19,13 +19,19 @@ celery_app.conf.update(
     enable_utc=True,
     broker_transport_options={
         "master_name": settings.REDIS_MASTER_NAME,
-        "sentinel_kwargs": {},
+        "sentinel_kwargs": {
+            **({"username": settings.REDIS_SENTINEL_USERNAME} if settings.REDIS_SENTINEL_USERNAME else {}),
+            **({"password": settings.REDIS_SENTINEL_PASSWORD} if settings.REDIS_SENTINEL_PASSWORD else {}),
+        },
         "password": settings.REDIS_PASSWORD,
         "db": settings.REDIS_DB,
     },
     result_backend_transport_options={
         "master_name": settings.REDIS_MASTER_NAME,
-        "sentinel_kwargs": {},
+        "sentinel_kwargs": {
+            **({"username": settings.REDIS_SENTINEL_USERNAME} if settings.REDIS_SENTINEL_USERNAME else {}),
+            **({"password": settings.REDIS_SENTINEL_PASSWORD} if settings.REDIS_SENTINEL_PASSWORD else {}),
+        },
         "password": settings.REDIS_PASSWORD,
         "db": settings.REDIS_DB,
     },

+ 6 - 2
alien_util/redis_client.py

@@ -7,8 +7,12 @@ from alien_gateway.config import settings
 
 
 def _sentinel_kwargs() -> dict:
-    """sentinel 本身无密码,此处不传 password"""
-    return {}
+    kwargs = {}
+    if settings.REDIS_SENTINEL_USERNAME:
+        kwargs["username"] = settings.REDIS_SENTINEL_USERNAME
+    if settings.REDIS_SENTINEL_PASSWORD:
+        kwargs["password"] = settings.REDIS_SENTINEL_PASSWORD
+    return kwargs
 
 
 def get_sentinel_client() -> Sentinel:

+ 16 - 1
poetry.lock

@@ -563,6 +563,21 @@ zookeeper = ["kazoo (>=1.3.1)"]
 zstd = ["zstandard (==0.23.0)"]
 
 [[package]]
+name = "celery-types"
+version = "0.24.0"
+description = "Type stubs for Celery and its related packages"
+optional = false
+python-versions = "<4,>=3.10"
+groups = ["main"]
+files = [
+    {file = "celery_types-0.24.0-py3-none-any.whl", hash = "sha256:a21e04681e68719a208335e556a79909da4be9c5e0d6d2fd0dd4c5615954b3fd"},
+    {file = "celery_types-0.24.0.tar.gz", hash = "sha256:c93fbcd0b04a9e9c2f55d5540aca4aa1ea4cc06a870c0c8dee5062fdd59663fe"},
+]
+
+[package.dependencies]
+typing-extensions = ">=4.15.0,<5"
+
+[[package]]
 name = "certifi"
 version = "2026.1.4"
 description = "Python package for providing Mozilla's CA Bundle."
@@ -3046,4 +3061,4 @@ testing = ["coverage[toml]", "zope.event", "zope.testing"]
 [metadata]
 lock-version = "2.1"
 python-versions = "^3.12"
-content-hash = "1c1d2bde66224c00e197aeacf34ca161a6a457c458f5df8951ca3c33670e793b"
+content-hash = "c04fd699d9c3181bfd93733c3bad8fb06bff145bce29c331dfc00a07216fdd5e"

+ 1 - 0
pyproject.toml

@@ -26,6 +26,7 @@ datetime = "^6.0"
 celery = "^5.6.2"
 alibabacloud-dysmsapi20170525 = "^4.4.0"
 python-dotenv = "1.2.1"
+celery-types = "^0.24.0"
 
 [build-system]
 requires = ["poetry-core>=1.0.0"]