fix: preserve claimed code queue read state
This commit is contained in:
@@ -1620,6 +1620,14 @@ async function runDatabaseClaimMoveSelfTest(): Promise<JsonValue | null> {
|
||||
}
|
||||
|
||||
async function loadPrunedDatabaseTaskRows(where: "all" | "hot"): Promise<DatabaseTaskRow[]> {
|
||||
if (where === "hot") {
|
||||
return await sql<DatabaseTaskRow[]>`
|
||||
SELECT id, updated_at, status, read_at, task_json - 'output' - 'events' AS task_json
|
||||
FROM unidesk_code_queue_tasks
|
||||
WHERE status IN ('queued', 'running', 'judging', 'retry_wait')
|
||||
ORDER BY created_at ASC, id ASC
|
||||
`;
|
||||
}
|
||||
return await sql<DatabaseTaskRow[]>`
|
||||
SELECT id, updated_at, status, read_at, task_json
|
||||
FROM (
|
||||
|
||||
@@ -74,7 +74,7 @@ function taskUpdatedAtMs(task: QueueTask): number {
|
||||
}
|
||||
|
||||
function memoryTaskIsNewerThanDatabase(memoryTask: QueueTask, databaseTask: QueueTask): boolean {
|
||||
return taskUpdatedAtMs(memoryTask) > taskUpdatedAtMs(databaseTask);
|
||||
return preferHotTaskForRead(memoryTask, databaseTask);
|
||||
}
|
||||
|
||||
function mergeReadTaskByFreshness(target: Map<string, QueueTask>, task: QueueTask): void {
|
||||
|
||||
Reference in New Issue
Block a user