تخطَّ إلى المحتوى

الترقيم والمزامنة بأمان

تستخدم المجموعات المتنامية مؤشرات لقطة مرتبطة بالمرشحات، كي يرى الاجتياز الواحد حداً أعلى ثابتاً مع استمرار تغير السجلات.

  1. أرسل الطلب الأول بالمرشحات الموثقة وlimit.
  2. عالج data.
  3. إذا كانت pagination.has_more تساوي true، فأرسل طلباً آخر بالقيمة الدقيقة pagination.next_cursor.
  4. أبقِ نقطة النهاية والمرشحات نفسيهما.
  5. توقف عندما تكون has_more تساوي false وnext_cursor تساوي null.

الحد الافتراضي 50 والأقصى 200. عامل المؤشر كقيمة معتمة: لا تفككه أو تعدله أو تحتفظ به بعد دورة مزامنته أو تعِد استخدامه مع نقطة نهاية أو معرّف مسار أو مرشح أو ترتيب مختلف.

{
"data": [],
"pagination": {
"next_cursor": null,
"has_more": false
}
}

تقبل المجموعات التي توثق created_after أو updated_after أوقات RFC 3339 بتوقيت UTC. ولا يجتمع المعاملان.

  1. أكمل اجتياز اللقطة الحالية.
  2. خزّن علامة مزامنة آمنة تناسب تصميمك.
  3. ابدأ الدورة التالية بـupdated_after لتضمين الإنشاءات والتحديثات اللاحقة.
  4. اجتز كل المؤشرات الناتجة من دون تغيير المرشح.
  5. نفّذ upsert باستخدام id وتحمّل التسليم مرة واحدة على الأقل.

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

تتضمن مجموعات الحلقات والطلاب سجلات كل الفصول ما لم ترسل semester_id أو semester_status. يحدد id السجل الخاص بالفصل. ويحدد lineage_id الحلقة أو الطالب المنطقي المستمر عبر النقل إلى فصل جديد.

اختر المفاتيح بقصد:

  • استخدم id للقراءات والكتابات والحالة الدقيقة؛
  • استخدم lineage_id لربط السجلات التاريخية واللاحقة؛
  • لا تستبدل أحدهما بالآخر.
  • تعرّف الفصول والحلقات والطلاب والجلسات ومجموعات التلاوة وخطط التعلّم والتكليفات والحضور ترقيم اللقطات.
  • اكتشاف الشيخ المؤهل قراءة للحالة الحالية، وليس موجز مزامنة تزايدياً.
  • بيانات السور المرجعية محدودة ولا تقبل الترقيم أو المرشحات.

تعني استجابة invalid_query أن مرشحاً أو ربط مؤشر أو وقتاً أو حداً لا يطابق العقد. ابدأ اجتيازاً جديداً بمرشحات صحيحة بدلاً من تعديل المؤشر.