35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
"""touch / pause_ttl / resume_ttl — управление TTL-таймером сессии."""
|
|
|
|
from .state import _sessions, _lock, _start_timer
|
|
|
|
|
|
def touch(sid: str):
|
|
"""Продлить жизнь сессии: перезапустить TTL-таймер (если сессия существует)."""
|
|
with _lock:
|
|
s = _sessions.get(sid)
|
|
if not s:
|
|
return
|
|
if s.get("timer"):
|
|
s["timer"].cancel()
|
|
s["timer"] = _start_timer(sid)
|
|
|
|
|
|
def pause_ttl(sid: str):
|
|
"""Приостановить TTL сессии (во время обработки): сессия живёт, пока идёт воркер."""
|
|
with _lock:
|
|
s = _sessions.get(sid)
|
|
if s and s.get("timer"):
|
|
s["timer"].cancel()
|
|
s["timer"] = None
|
|
|
|
|
|
def resume_ttl(sid: str):
|
|
"""Возобновить TTL сессии (после завершения обработки): результат доступен ещё TTL."""
|
|
with _lock:
|
|
s = _sessions.get(sid)
|
|
if not s:
|
|
return
|
|
if s.get("timer"):
|
|
s["timer"].cancel()
|
|
s["timer"] = _start_timer(sid)
|