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

1""" 

2Queue middleware v2 - notifies queue processor of user activity. 

3""" 

4 

5from flask import session 

6from loguru import logger 

7 

8from ...database.encrypted_db import db_manager 

9from .middleware_optimizer import should_skip_queue_checks 

10 

11 

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 

20 

21 username = session.get("username") 

22 session_id = session.get("session_id") 

23 

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 

32 

33 # Notify the processor to check this user's queue 

34 queue_processor.notify_user_activity(username, session_id) 

35 

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 ) 

45 

46 except Exception: 

47 # Don't let queue errors break the request 

48 logger.exception("Error notifying queue processor")