Бази даних · Senior · Запитання 11 з 75
Як побудувати на PostgreSQL чергу задач, яку безпечно опитують багато воркерів?
SELECT id FROM jobs
WHERE status = 'queued'
ORDER BY id
FOR UPDATE SKIP LOCKED
LIMIT 1;- ✓Правильна відповідь:
FOR UPDATE SKIP LOCKEDдає кожному воркеру взяти інший незаблокований рядок, не чекаючи на інших - 2Кожен воркер читає всі задачі й обирає одну випадково
- 3PostgreSQL не можна використовувати для черг
Пояснення
Так працюють бібліотеки pg-boss і graphile-worker. Підхід добре тримає помірний потік і робить задачі транзакційними разом з вашими даними.