الترقيم والمزامنة بأمان
تستخدم المجموعات المتنامية مؤشرات لقطة مرتبطة بالمرشحات، كي يرى الاجتياز الواحد حداً أعلى ثابتاً مع استمرار تغير السجلات.
قراءة كل الصفحات
Section titled “قراءة كل الصفحات”- أرسل الطلب الأول بالمرشحات الموثقة و
limit. - عالج
data. - إذا كانت
pagination.has_moreتساويtrue، فأرسل طلباً آخر بالقيمة الدقيقةpagination.next_cursor. - أبقِ نقطة النهاية والمرشحات نفسيهما.
- توقف عندما تكون
has_moreتساويfalseوnext_cursorتساويnull.
الحد الافتراضي 50 والأقصى 200. عامل المؤشر كقيمة معتمة: لا تفككه أو تعدله أو تحتفظ به بعد دورة مزامنته أو تعِد استخدامه مع نقطة نهاية أو معرّف مسار أو مرشح أو ترتيب مختلف.
{ "data": [], "pagination": { "next_cursor": null, "has_more": false }}تشغيل دورة تزايدية
Section titled “تشغيل دورة تزايدية”تقبل المجموعات التي توثق created_after أو updated_after أوقات RFC 3339
بتوقيت UTC. ولا يجتمع المعاملان.
- أكمل اجتياز اللقطة الحالية.
- خزّن علامة مزامنة آمنة تناسب تصميمك.
- ابدأ الدورة التالية بـ
updated_afterلتضمين الإنشاءات والتحديثات اللاحقة. - اجتز كل المؤشرات الناتجة من دون تغيير المرشح.
- نفّذ upsert باستخدام
idوتحمّل التسليم مرة واحدة على الأقل.
لا تستخدم ساعة العميل دليلاً على أن الخادم أعاد كل تغيير. ولا تقدم نقطة الحفظ قبل معالجة الدورة كاملة بصورة دائمة.
سلوك الفصل والسلالة
Section titled “سلوك الفصل والسلالة”تتضمن مجموعات الحلقات والطلاب سجلات كل الفصول ما لم ترسل semester_id أو
semester_status. يحدد id السجل الخاص بالفصل. ويحدد lineage_id الحلقة أو
الطالب المنطقي المستمر عبر النقل إلى فصل جديد.
اختر المفاتيح بقصد:
- استخدم
idللقراءات والكتابات والحالة الدقيقة؛ - استخدم
lineage_idلربط السجلات التاريخية واللاحقة؛ - لا تستبدل أحدهما بالآخر.
اختلافات المجموعات
Section titled “اختلافات المجموعات”- تعرّف الفصول والحلقات والطلاب والجلسات ومجموعات التلاوة وخطط التعلّم والتكليفات والحضور ترقيم اللقطات.
- اكتشاف الشيخ المؤهل قراءة للحالة الحالية، وليس موجز مزامنة تزايدياً.
- بيانات السور المرجعية محدودة ولا تقبل الترقيم أو المرشحات.
تعني استجابة invalid_query أن مرشحاً أو ربط مؤشر أو وقتاً أو حداً لا يطابق
العقد. ابدأ اجتيازاً جديداً بمرشحات صحيحة بدلاً من تعديل المؤشر.