57 lines
808 B
SQL
57 lines
808 B
SQL
-- name: Ping :one
|
|
SELECT 1;
|
|
|
|
-- name: GetCurrentQueueSize :one
|
|
SELECT
|
|
COUNT(*) current_queue_size
|
|
FROM
|
|
work_schedule
|
|
WHERE
|
|
worker_id = $1
|
|
AND state <> 'archived';
|
|
|
|
-- name: InsertQueueItem :exec
|
|
INSERT INTO work_schedule
|
|
(
|
|
schedule_id
|
|
, worker_id
|
|
, start_run
|
|
, end_run
|
|
, state
|
|
)
|
|
VALUES
|
|
(
|
|
$1
|
|
, $2
|
|
, $3
|
|
, $4
|
|
, 'pending'
|
|
);
|
|
|
|
|
|
-- name: GetNext :one
|
|
SELECT
|
|
*
|
|
FROM
|
|
work_schedule
|
|
WHERE
|
|
worker_id = $1
|
|
AND state = 'pending'
|
|
ORDER BY updated_at DESC
|
|
LIMIT 1;
|
|
|
|
-- name: StartProcessing :exec
|
|
UPDATE work_schedule
|
|
SET
|
|
state = 'processing'
|
|
WHERE
|
|
schedule_id = $1;
|
|
|
|
-- name: Archive :exec
|
|
UPDATE work_schedule
|
|
SET
|
|
state = 'archived'
|
|
WHERE
|
|
schedule_id = $1;
|
|
|