Skip to content

Commit 6746563

Browse files
committed
fix bugs: address rabbitmq initialization failed when doing pytest
1 parent 9708f4d commit 6746563

File tree

3 files changed

+38
-1
lines changed

3 files changed

+38
-1
lines changed

src/memos/mem_scheduler/task_schedule_modules/redis_queue.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,8 +249,25 @@ def ack_message(
249249
stream_key = self.get_stream_key(
250250
user_id=user_id, mem_cube_id=mem_cube_id, task_label=task_label
251251
)
252+
# No-op if not connected or message doesn't come from Redis
253+
if not self._redis_conn:
254+
logger.debug(
255+
f"Skip ack: Redis not connected for stream '{stream_key}', msg_id='{redis_message_id}'"
256+
)
257+
return
258+
if not redis_message_id:
259+
logger.debug(
260+
f"Skip ack: Empty redis_message_id for stream '{stream_key}', user_id='{user_id}', label='{task_label}'"
261+
)
262+
return
252263

253-
self.redis.xack(stream_key, self.consumer_group, redis_message_id)
264+
try:
265+
self._redis_conn.xack(stream_key, self.consumer_group, redis_message_id)
266+
except Exception as e:
267+
logger.warning(
268+
f"xack failed for stream '{stream_key}', msg_id='{redis_message_id}': {e}"
269+
)
270+
return
254271

255272
# Optionally delete the message from the stream to keep it clean
256273
if self.auto_delete_acked:

src/memos/mem_scheduler/webservice_modules/rabbitmq_service.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,16 @@ def initialize_rabbitmq(
7070
Establish connection to RabbitMQ using pika.
7171
"""
7272
try:
73+
# Skip remote initialization in CI/pytest unless explicitly enabled
74+
enable_env = os.getenv("MEMOS_ENABLE_RABBITMQ", "").lower() == "true"
75+
in_ci = os.getenv("CI", "").lower() == "true"
76+
in_pytest = os.getenv("PYTEST_CURRENT_TEST") is not None
77+
if (in_ci or in_pytest) and not enable_env:
78+
logger.info(
79+
"Skipping RabbitMQ initialization in CI/test environment. Set MEMOS_ENABLE_RABBITMQ=true to enable."
80+
)
81+
return
82+
7383
from pika.adapters.select_connection import SelectConnection
7484

7585
if config is None:

src/memos/mem_scheduler/webservice_modules/redis_service.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,16 @@ def auto_initialize_redis(self) -> bool:
111111
Returns:
112112
bool: True if Redis connection is successfully established, False otherwise
113113
"""
114+
# Skip remote initialization in CI/pytest unless explicitly enabled
115+
enable_env = os.getenv("MEMOS_ENABLE_REDIS", "").lower() == "true"
116+
in_ci = os.getenv("CI", "").lower() == "true"
117+
in_pytest = os.getenv("PYTEST_CURRENT_TEST") is not None
118+
if (in_ci or in_pytest) and not enable_env:
119+
logger.info(
120+
"Skipping Redis auto-initialization in CI/test environment. Set MEMOS_ENABLE_REDIS=true to enable."
121+
)
122+
return False
123+
114124
import redis
115125

116126
# Strategy 1: Try to initialize from config

0 commit comments

Comments
 (0)