fix: abandonment works
Some checks failed
Build Worker Base and Application Images / deploy-stack (push) Blocked by required conditions
Build Worker Base and Application Images / check-base-changes (push) Successful in 9s
Build Worker Base and Application Images / build-base (push) Has been skipped
Build Worker Base and Application Images / build-docker (push) Has been cancelled
Some checks failed
Build Worker Base and Application Images / deploy-stack (push) Blocked by required conditions
Build Worker Base and Application Images / check-base-changes (push) Successful in 9s
Build Worker Base and Application Images / build-base (push) Has been skipped
Build Worker Base and Application Images / build-docker (push) Has been cancelled
This commit is contained in:
parent
793beb1571
commit
3ed7a2cd53
3 changed files with 14 additions and 38 deletions
|
@ -220,8 +220,10 @@ class TrackingPipelineIntegration:
|
|||
)
|
||||
|
||||
# Update last detection time for abandonment detection
|
||||
# Update when vehicles ARE detected, so when they leave, timestamp ages
|
||||
if tracked_vehicles:
|
||||
self.last_detection_time[display_id] = time.time()
|
||||
logger.debug(f"Updated last_detection_time for {display_id}: {len(tracked_vehicles)} vehicles")
|
||||
|
||||
# Check for car abandonment (vehicle left after getting car_wait_staff stage)
|
||||
await self._check_car_abandonment(display_id, subscription_id)
|
||||
|
@ -632,10 +634,16 @@ class TrackingPipelineIntegration:
|
|||
last_detection = self.last_detection_time.get(session_display, 0)
|
||||
time_since_detection = current_time - last_detection
|
||||
|
||||
logger.info(f"[ABANDON CHECK] Session {session_id} (display: {session_display}): "
|
||||
f"time_since_detection={time_since_detection:.1f}s, "
|
||||
f"timeout={self.abandonment_timeout}s")
|
||||
|
||||
if time_since_detection > self.abandonment_timeout:
|
||||
logger.info(f"Car abandonment detected: session {session_id}, "
|
||||
logger.warning(f"🚨 Car abandonment detected: session {session_id}, "
|
||||
f"no detection for {time_since_detection:.1f}s")
|
||||
abandoned_sessions.append(session_id)
|
||||
else:
|
||||
logger.debug(f"[ABANDON CHECK] Session {session_id} has no associated display")
|
||||
|
||||
# Send abandonment detection for each abandoned session
|
||||
for session_id in abandoned_sessions:
|
||||
|
@ -643,6 +651,7 @@ class TrackingPipelineIntegration:
|
|||
# Remove from progression stages to avoid repeated detection
|
||||
if session_id in self.progression_stages:
|
||||
del self.progression_stages[session_id]
|
||||
logger.info(f"[ABANDON] Removed session {session_id} from progression_stages after notification")
|
||||
|
||||
async def _send_abandonment_detection(self, subscription_id: str, session_id: str):
|
||||
"""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue