Datenbanken · Senior · Frage 11 von 75
Wie baut man auf PostgreSQL eine Job-Queue, die viele Worker sicher abfragen?
SELECT id FROM jobs
WHERE status = 'queued'
ORDER BY id
FOR UPDATE SKIP LOCKED
LIMIT 1;- 1
FOR UPDATE SKIP LOCKEDgibt jedem Worker seine eigene Zeile - 2Jeder Worker liest alle Jobs und wählt zufällig einen
- 3Gar nicht: PostgreSQL eignet sich nicht für Queues
Antwort zeigen
Richtige Antwort: FOR UPDATE SKIP LOCKED gibt jedem Worker seine eigene Zeile
Erklärung
Bibliotheken wie pg-boss und graphile-worker nutzen das. Es funktioniert gut bei moderatem Durchsatz und hält Jobs transaktional mit deinen Daten.