19 lines
838 B
SQL
19 lines
838 B
SQL
UPDATE tasks
|
|
SET lease_owner = NULL,
|
|
lease_expires_at = NULL,
|
|
updated_at = now()
|
|
WHERE status IN ('awaiting_confirmation', 'completed', 'cancelled', 'parse_failed', 'reconciliation_pending')
|
|
AND (lease_owner IS NOT NULL OR lease_expires_at IS NOT NULL);
|
|
|
|
UPDATE task_attempts AS attempt
|
|
SET status = CASE WHEN task.status = 'cancelled' THEN 'cancelled' ELSE 'abandoned' END,
|
|
error_code = COALESCE(
|
|
attempt.error_code,
|
|
CASE WHEN task.status = 'cancelled' THEN 'task_cancelled' ELSE 'task_terminal_reconciliation' END
|
|
),
|
|
finished_at = COALESCE(attempt.finished_at, now())
|
|
FROM tasks AS task
|
|
WHERE attempt.task_id = task.id
|
|
AND attempt.status = 'running'
|
|
AND task.status IN ('awaiting_confirmation', 'completed', 'cancelled', 'parse_failed', 'reconciliation_pending');
|