Nâng CaoPostgreSQL iconPostgreSQL

`SKIP LOCKED` dùng để build job queue như thế nào?

FOR UPDATE SKIP LOCKED cho phép nhiều worker lấy job chưa bị lock, bỏ qua row đang được worker khác xử lý. Đây là pattern phổ biến cho queue nhẹ trong PostgreSQL.

Ví dụ:

sql
WITH next_job AS (
  SELECT id FROM jobs
  WHERE status = 'pending'
  ORDER BY created_at
  FOR UPDATE SKIP LOCKED
  LIMIT 1
)
UPDATE jobs SET status = 'running'
WHERE id IN (SELECT id FROM next_job)
RETURNING *;

Cần thêm retry, visibility timeout, dead-letter status và index phù hợp nếu queue lớn.

Xem toàn bộ PostgreSQL cùng filter theo level & chủ đề con.

Mở danh sách PostgreSQL