Skip to content
This repository has been archived by the owner on Feb 8, 2024. It is now read-only.

fix: Use a good index for dequeue #61

Merged
merged 5 commits into from
Feb 2, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions migrations/20240202003133_better_dequeue_index.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
-- Dequeue is not hitting this index, so dropping is safe this time.
DROP INDEX idx_queue_scheduled_at;

/*
Partial index used for dequeuing from job_queue.

Dequeue only looks at available jobs so a partial index serves us well.
Moreover, dequeue sorts jobs by attempt and scheduled_at, which matches this index.
*/
CREATE INDEX idx_queue_dequeue_partial ON job_queue(queue, attempt, scheduled_at) WHERE status = 'available' :: job_status;
Loading