انتقل إلى المحتوى
أمين أبوزيد
درس مخطط لهMID-015-L04

طوابير المهام بـ SKIP LOCKED

  • الدرس 4 من 7
  • Mid-level
في هذا الدرس 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).
تفاصيل المخطط المبدئي

عرض عملي

sql
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.

التطبيق

طبّق هذا الدرس بمختبر الوحدة وتمارينها واختبارها.

المختبر والتمارين الاختبار

تعليم الدرس كمكتمل اختياري ويمكنك التراجع عنه في أي وقت. يبقى تقدمك محفوظًا في هذا المتصفح.

اكتب للبحث في المستويات والمراحل والوحدات والدروس.