طوابير المهام بـ SKIP LOCKED
في هذا الدرس 4 موضوعات
هذا الدرس مخطط له. يعرض المخطط أدناه الموضوعات التي سيغطيها، ولم يُنشر الدرس الكامل بعد.
نص الدروس والتمارين باللغة الإنجليزية، بينما تبقى واجهة الموقع وعناوين الدروس بالعربية.
في هذا الدرس
build a safe multi-worker queue in a table.
الموضوعات المخطط لها
- Workers claim a job with
FOR UPDATE SKIP LOCKED, so no two take the same job and nobody waits. - Claim and mark in one statement using a CTE with
UPDATE ... RETURNING. - Handle crashed workers: a claimed job rolls back (lock released) if the transaction dies.
- Fine for moderate volumes; for heavy messaging use a broker (later modules).
تفاصيل المخطط المبدئي
عرض عملي
WITH next AS (
SELECT id FROM job WHERE status = 'NEW'
ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED
)
UPDATE job SET status = 'RUNNING' FROM next WHERE job.id = next.id RETURNING job.*;اختبر فهمك
What does SKIP LOCKED do?
أظهر الإجابة
Ignores rows other transactions have locked instead of waiting.
التطبيق
طبّق هذا الدرس بمختبر الوحدة وتمارينها واختبارها.
تعليم الدرس كمكتمل اختياري ويمكنك التراجع عنه في أي وقت. يبقى تقدمك محفوظًا في هذا المتصفح.