v1.2.23: lock_check three-state return (True/False/None), None→503 DB unavailable
This commit is contained in:
@@ -215,10 +215,11 @@ def lock_check(client_id, stand):
|
||||
|
||||
Returns:
|
||||
True — можно запускать (нет RUNNING в БД)
|
||||
False — нельзя (уже есть RUNNING) → 409 Conflict"""
|
||||
False — нельзя (уже есть RUNNING) → 409 Conflict
|
||||
None — БД недоступна, нельзя проверить → 503 DB unavailable"""
|
||||
conn = get_conn()
|
||||
if not conn:
|
||||
return False # без БД — не разрешаем (partial unique index недоступен)
|
||||
return None # БД недоступна — не True и не False, вызывающий решит
|
||||
try:
|
||||
cur = conn.cursor()
|
||||
cur.execute("""
|
||||
@@ -231,7 +232,6 @@ def lock_check(client_id, stand):
|
||||
return row is None # None = нет RUNNING = можно запускать
|
||||
except Exception as e:
|
||||
print(f"[DEFS] lock_check error: {e}", flush=True)
|
||||
# При ошибке БД — НЕ разрешаем (безопасный fallback)
|
||||
return False
|
||||
return None # ошибка БД — не можем проверить
|
||||
finally:
|
||||
put_conn(conn)
|
||||
|
||||
Reference in New Issue
Block a user