Coverage for src / local_deep_research / web / auth / queue_middleware_v2.py: 100%
19 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-04-14 23:55 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-04-14 23:55 +0000
1"""
2Queue middleware v2 - notifies queue processor of user activity.
3"""
5from flask import session
6from loguru import logger
8from ...database.encrypted_db import db_manager
9from .middleware_optimizer import should_skip_queue_checks
12def notify_queue_processor():
13 """
14 Notify the queue processor that this user is active.
15 Called as a before_request handler.
16 """
17 # Skip for GET requests and other operations that don't need queue processing
18 if should_skip_queue_checks():
19 return
21 username = session.get("username")
22 session_id = session.get("session_id")
24 if username and session_id:
25 # Only notify if user has database connection (authenticated).
26 # Uses db_manager.is_user_connected() instead of g.db_session because
27 # sessions are created lazily — g.db_session may still be None at
28 # this point in the before_request chain.
29 if db_manager.is_user_connected(username):
30 try:
31 from ..queue.processor_v2 import queue_processor
33 # Notify the processor to check this user's queue
34 queue_processor.notify_user_activity(username, session_id)
36 # Also trigger immediate processing if needed
37 queued_count = queue_processor.process_user_request(
38 username, session_id
39 )
40 if queued_count > 0:
41 logger.debug(
42 f"User {username} has {queued_count} queued items, "
43 f"processor notified"
44 )
46 except Exception:
47 # Don't let queue errors break the request
48 logger.exception("Error notifying queue processor")