Skip to content

Commit 0e41b64

Browse files
authored
fix: Use env exchange overrides for all scheduler messages (#834)
* Use env exchange name/type overrides for scheduler * Default routing key to empty with env exchange override * Format rabbitmq_service after env override changes --------- Co-authored-by: glin1993@outlook.com <>
1 parent 8d63060 commit 0e41b64

1 file changed

Lines changed: 16 additions & 7 deletions

File tree

src/memos/mem_scheduler/webservice_modules/rabbitmq_service.py

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
from memos.mem_scheduler.general_modules.base import BaseSchedulerModule
1515
from memos.mem_scheduler.general_modules.misc import AutoDroppingQueue
1616
from memos.mem_scheduler.schemas.general_schemas import DIRECT_EXCHANGE_TYPE, FANOUT_EXCHANGE_TYPE
17-
from memos.mem_scheduler.utils.misc_utils import is_cloud_env
1817

1918

2019
logger = get_logger(__name__)
@@ -132,6 +131,15 @@ def initialize_rabbitmq(
132131
self.rabbitmq_exchange_type = self.rabbitmq_config.exchange_type
133132
logger.info(f"Using configured exchange type: {self.rabbitmq_exchange_type}")
134133

134+
env_exchange_name = os.getenv("MEMSCHEDULER_RABBITMQ_EXCHANGE_NAME")
135+
env_exchange_type = os.getenv("MEMSCHEDULER_RABBITMQ_EXCHANGE_TYPE")
136+
if env_exchange_name:
137+
self.rabbitmq_exchange_name = env_exchange_name
138+
logger.info(f"Using env exchange name override: {self.rabbitmq_exchange_name}")
139+
if env_exchange_type:
140+
self.rabbitmq_exchange_type = env_exchange_type
141+
logger.info(f"Using env exchange type override: {self.rabbitmq_exchange_type}")
142+
135143
# Start connection process
136144
parameters = self.get_rabbitmq_connection_param()
137145
self.rabbitmq_connection = SelectConnection(
@@ -313,15 +321,16 @@ def rabbitmq_publish_message(self, message: dict):
313321
if label == "knowledgeBaseUpdate":
314322
routing_key = ""
315323

316-
# Cloud environment override: applies to specific message types if MEMSCHEDULER_RABBITMQ_EXCHANGE_NAME is set
324+
# Env override: apply to all message types when MEMSCHEDULER_RABBITMQ_EXCHANGE_NAME is set
317325
env_exchange_name = os.getenv("MEMSCHEDULER_RABBITMQ_EXCHANGE_NAME")
318-
if is_cloud_env() and env_exchange_name and label in ["taskStatus", "knowledgeBaseUpdate"]:
326+
env_routing_key = os.getenv("MEMSCHEDULER_RABBITMQ_ROUTING_KEY")
327+
if env_exchange_name:
319328
exchange_name = env_exchange_name
320-
routing_key = "" # Routing key is always empty in cloud environment for these types
321-
322-
# Specific diagnostic logging for messages affected by cloud environment settings
329+
routing_key = (
330+
env_routing_key if env_routing_key is not None and env_routing_key != "" else ""
331+
)
323332
logger.info(
324-
f"[DIAGNOSTIC] Publishing {label} message in Cloud Env. "
333+
f"[DIAGNOSTIC] Publishing {label} message with env exchange override. "
325334
f"Exchange: {exchange_name}, Routing Key: '{routing_key}'."
326335
)
327336
logger.info(f" - Message Content: {json.dumps(message, indent=2, ensure_ascii=False)}")

0 commit comments

Comments
 (0)