Prioritize tasks that have never run at all

master
Sven Slootweg 1 year ago
parent e40113a701
commit 48e9f8372b

@ -60,29 +60,34 @@ function makeFillQuery(withDependencies) {
SELECT item_id FROM tag_candidates SELECT item_id FROM tag_candidates
` `
} }
),
tasks AS NOT MATERIALIZED (
SELECT
item_id,
is_successful,
(
results.is_successful = FALSE
OR (
results.is_successful = TRUE
AND results.is_invalidated = FALSE
AND (
results.expires_at > NOW()
OR results.expires_at IS NULL
)
)
) AS is_completed
FROM srap_task_results AS results
WHERE
results.task = :task
AND results.task_version = :taskVersion
) )
SELECT SELECT
:task AS task, :task AS task,
item_id full_candidates.item_id
FROM full_candidates FROM full_candidates
WHERE NOT EXISTS ( LEFT JOIN tasks ON full_candidates.item_id = tasks.item_id
SELECT item_id FROM srap_task_results AS results WHERE tasks.is_completed IS NOT TRUE
WHERE ORDER BY tasks.is_successful NULLS FIRST
item_id = full_candidates.item_id
AND results.task = :task
AND results.task_version = :taskVersion
AND (
results.is_successful = FALSE
OR (
results.is_successful = TRUE
AND results.is_invalidated = FALSE
AND (
results.expires_at > NOW()
OR results.expires_at IS NULL
)
)
)
)
`; `;
} }

Loading…
Cancel
Save