File tree Expand file tree Collapse file tree 3 files changed +38
-1
lines changed
Expand file tree Collapse file tree 3 files changed +38
-1
lines changed Original file line number Diff line number Diff 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 :
Original file line number Diff line number Diff 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 :
Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments