Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 18 additions & 8 deletions src/memos/mem_scheduler/webservice_modules/rabbitmq_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -283,18 +283,28 @@ def rabbitmq_publish_message(self, message: dict):

exchange_name = self.rabbitmq_exchange_name
routing_key = self.rabbit_queue_name
label = message.get("label")

if message.get("label") == "knowledgeBaseUpdate":
kb_specific_exchange_name = os.getenv("MEMSCHEDULER_RABBITMQ_EXCHANGE_NAME")
# Special handling for knowledgeBaseUpdate in local environment: always empty routing key
if label == "knowledgeBaseUpdate":
routing_key = ""

if kb_specific_exchange_name:
exchange_name = kb_specific_exchange_name

routing_key = "" # User specified empty routing key for KB updates
# Cloud environment override: applies to specific message types if MEMSCHEDULER_RABBITMQ_EXCHANGE_NAME is set
env_exchange_name = os.getenv("MEMSCHEDULER_RABBITMQ_EXCHANGE_NAME")
if env_exchange_name and label in ["taskStatus", "knowledgeBaseUpdate"]:
exchange_name = env_exchange_name
routing_key = "" # Routing key is always empty in cloud environment for these types

# Specific diagnostic logging for messages affected by cloud environment settings
logger.info(
f"[DIAGNOSTIC] Publishing {label} message in Cloud Env. "
f"Exchange: {exchange_name}, Routing Key: '{routing_key}'."
)
logger.info(f" - Message Content: {json.dumps(message, indent=2)}")
elif label == "knowledgeBaseUpdate":
# Original diagnostic logging for knowledgeBaseUpdate if NOT in cloud env
logger.info(
f"[DIAGNOSTIC] Publishing KB Update message. "
f"ENV_EXCHANGE_NAME_USED: {kb_specific_exchange_name is not None}. "
f"[DIAGNOSTIC] Publishing knowledgeBaseUpdate message (Local Env). "
f"Current configured Exchange: {exchange_name}, Routing Key: '{routing_key}'."
)
logger.info(f" - Message Content: {json.dumps(message, indent=2)}")
Expand Down