BAI-3: harden live readiness diagnostics
Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
co-authored by
multica-agent
parent
a326df2a8d
commit
777af0cb8b
@@ -2,7 +2,7 @@ from __future__ import annotations
|
||||
|
||||
import json
|
||||
from dataclasses import dataclass
|
||||
from datetime import datetime
|
||||
from datetime import datetime, timedelta
|
||||
from typing import Any
|
||||
|
||||
from database import ReviewDatabase
|
||||
@@ -27,9 +27,37 @@ class SQLiteJobRunRepository:
|
||||
def start(
|
||||
self, job_id: str, idempotency_key: str, output_version: str,
|
||||
metadata: dict[str, Any] | None = None,
|
||||
) -> int:
|
||||
now = datetime.now().astimezone().isoformat(timespec="seconds")
|
||||
stale_after_seconds: int = 0,
|
||||
) -> int | None:
|
||||
current = datetime.now().astimezone()
|
||||
now = current.isoformat(timespec="seconds")
|
||||
stale_before = (
|
||||
current - timedelta(seconds=max(1, int(stale_after_seconds or 1)))
|
||||
).isoformat(timespec="seconds")
|
||||
with self.database.connect() as connection:
|
||||
# The process-local runner lock cannot protect two server processes.
|
||||
connection.execute("BEGIN IMMEDIATE")
|
||||
connection.execute(
|
||||
"""
|
||||
UPDATE job_runs
|
||||
SET status = 'failed', finished_at = ?, error_code = 'StaleRun',
|
||||
message = 'Previous run exceeded its execution window.'
|
||||
WHERE job_id = ? AND idempotency_key = ? AND status = 'running'
|
||||
AND started_at < ?
|
||||
""",
|
||||
(now, job_id, idempotency_key, stale_before),
|
||||
)
|
||||
claimed = connection.execute(
|
||||
"""
|
||||
SELECT 1 FROM job_runs
|
||||
WHERE job_id = ? AND idempotency_key = ?
|
||||
AND status IN ('running', 'success')
|
||||
LIMIT 1
|
||||
""",
|
||||
(job_id, idempotency_key),
|
||||
).fetchone()
|
||||
if claimed:
|
||||
return None
|
||||
row = connection.execute(
|
||||
"""
|
||||
SELECT COALESCE(MAX(attempt), 0) + 1 AS attempt FROM job_runs
|
||||
|
||||
Reference in New Issue
Block a user