اطلب الوصول المبكر

أدخل اسمك الأول وعنوان بريدك الإلكتروني. سنرسل إليك رابطًا لتأكيد طلب الوصول إلى Tajo.

مبتدئ 6 دقائق

استعادة مزامنة عالقة أو فاشلة

ما يفعله Tajo بنفسه عندما يتوقف عامل المعالجة أو يفشل تشغيل مزامنة، وما تعرضه صفحة المزامنة، ومتى تتدخل أنت: إعادة المحاولة أو إعادة الربط أو إصلاح ربط الحقول أو النشر من جديد.

قد يتوقف تشغيل المزامنة في منتصفه لأن عامل المعالجة (worker) أُعيد تشغيله، أو لأن النظام الآخر متوقف، أو لأن سجلًا رُفض. بعد توقف عامل المعالجة أو انقطاع عابر، يستأنف Tajo المزامنة من تلقاء نفسه. ولا يعيد إرسال السجلات التي كتبها خلال الأيام السبعة الأخيرة. تشرح هذه الصفحة ما يفعله، وما تراه في صفحة المزامنة، والحالات القليلة التي تحتاج فيها إلى التدخل.

فحص سريع افتح المزامنة من Syncs and mappings تحت Connections واقرأ أحدث تشغيل في Run history. يذكر التشغيل الفاشل ما حدث وما يجب فعله بعد ذلك.

ما يفعله Tajo بنفسه

المؤشر. يقرأ التشغيل مصدره على دفعات بدءًا من المؤشر المحفوظ للمزامنة. لا يتقدم المؤشر في نهاية الدفعة إلا إذا وصلت كل سجلات تلك الدفعة. إذا فشل التشغيل، يُحتفظ بآخر موضع بلغه دون أخطاء. يبدأ التشغيل التالي من هناك، فتُقرأ الدفعة المنقطعة من جديد بدلًا من تخطيها.

سجل التسليم. قبل كتابة أي سجل، يحصل على مفتاح تسليم. المفتاح قيمة تجزئة (hash) للمزامنة والمصدر ومؤشر الصفحة وموضع السجل في الصفحة والسجل نفسه، لذا لا يحتوي على أي بيانات شخصية. قبل استدعاء الوجهة، يُحجز المفتاح. عندما تنجح الكتابة، يُعلَّم المفتاح بأنه مكتمل ويُحفظ سبعة أيام. لا يعتمد المفتاح على التشغيل الذي يطلبه، لذا تشتق إعادة المحاولة أو تشغيل مجدول لاحق المفتاح نفسه للسجل نفسه. خلال هذه الأيام السبعة تُستخدم النتيجة المحفوظة ولا تُستدعى الوجهة مرة أخرى. لهذا لا تصل الدفعة المعادة مرتين.

تشغيل واحد في كل مرة. لكل مزامنة حجز (lease) واحد، يحتفظ به التشغيل الجاري طوال مدته. للحجز رمز خاص به وعمر 15 دقيقة، ويُجدَّد كل 5 دقائق ما دام التشغيل يعمل. التشغيل الذي يفقد حجزه يتوقف قبل كتابته التالية أو نقطة الحفظ التالية، كي لا يكتب مرتين. عندما يتوقف عامل المعالجة، لا يُجدَّد حجزه بعد ذلك، فتنتهي مهلته خلال 15 دقيقة.

إعادة المحاولة التلقائية. التشغيل الموجود في قائمة الانتظار الذي يفشل يحصل على خمس محاولات كحد أقصى. ينتظر Tajo 60 ثانية قبل المحاولة الثانية، ثم 120 و240 و480 ثانية. أما إعادة المحاولة أو التشغيل التجريبي الذي تبدأه بنفسك فيعمل مرة واحدة. لا تُعاد محاولة تشغيل تعارض مع تشغيل جارٍ بالفعل، ولا تشغيل لم تعد نسخته المنشورة أو اتصالاته صالحة.

التشغيلات العالقة. في المزامنة التي يشغّلها Tajo وفق جدول، يُغلق التشغيل ويوضع تشغيل جديد في قائمة الانتظار متى بدأ قبل أكثر من ساعة ولم يعد يحتفظ بحجزه. يعرض التشغيل المغلق “The run stopped reporting progress and was closed.” (توقف التشغيل عن الإبلاغ عن تقدمه وأُغلق). إذن لا يدوم حجز التشغيل المتوقف أكثر من 15 دقيقة، ويُستبدل التشغيل العالق لمزامنة مجدولة بعد ساعة. يوضح مقال فهم مزامنة بيانات Shopify مع Brevo أي المزامنات تعمل وفق جدول.

الإيقاف المؤقت بعد إخفاقات متكررة. إذا فشلت آخر خمسة تشغيلات منتهية منذ آخر تعديل على المزامنة، يوقف Tajo المزامنة مؤقتًا. تعرض صفحتها “Paused automatically by the failure circuit breaker” مع آخر خطأ. تشغيل واحد ناجح يعيد العدّ إلى الصفر. لا شيء يعيد تشغيل المزامنة الموقوفة من تلقاء نفسه: تبقى موقوفة حتى تصلح السبب وتنشرها من جديد.

الفحص كل ساعة. كل ساعة، عند الدقيقة 13، ينبّه Tajo فريقه عن أي مساحة عمل فيها مزامنة نشطة ولم ينجح فيها أي تشغيل خلال آخر 24 ساعة. ويشمل ذلك مساحة العمل التي لم يُسجَّل فيها أي تشغيل على الإطلاق. يُطلق التنبيه مرة واحدة، ولا يُطلق مجددًا إلا بعد نجاح تشغيل. مساحة العمل التي فُعّلت أو عُدّلت أقدم مزامنة نشطة فيها قبل أقل من 24 ساعة لا تُفحص بعد. يصل هذا التنبيه إلى Tajo لا إليك، ولا يغيّر مزامنتك.

ما تراه

افتح المزامنة من Syncs and mappings. يعرض Run history كل تشغيل مع عدد السجلات المكتوبة من السجلات المقروءة، وعدد الإخفاقات، والمدة، ووقت البدء. حالته هي Queued أو Running أو Succeeded أو Partial (فشلت بعض السجلات) أو Failed.

  • التشغيل الجاري الذي لم يبلّغ عن تقدمه منذ دقيقتين يعرض “Waiting for a fresh progress update” (في انتظار تحديث جديد للتقدم).
  • يعرض التشغيل الفاشل جملة عما حدث، وجملة عما يجب فعله بعد ذلك، واسم الإخفاق، ومعرّف التشغيل.
  • يعرض View DLQ في صفحة Syncs التشغيلات الفاشلة والجزئية في كل المزامنات، ومع كل منها زر Retry.

ما يجب فعله

  1. اقرأ أحدث تشغيل فاشل. سطر “ما يجب فعله” فيه هو الخطوة التالية. يسرد الجدول أدناه الإخفاقات التي يُرجَّح أن تصادفها.
  2. إذا كان مكتوبًا “Nothing”، فانتظر. يتعافى التشغيل المجدول التالي من تلقاء نفسه.
  3. إذا كان مكتوبًا أن تشغّل المزامنة مرة أخرى، فاضغط Retry على التشغيل الفاشل تحت View DLQ. تبدأ إعادة المحاولة من المؤشر المحفوظ، فلا تُكتب الدفعات المكتوبة بالفعل مرة أخرى. إعادة المحاولة الناجحة تزيل التشغيل الفاشل من القائمة.
  4. إذا أُوقفت المزامنة مؤقتًا، فأصلح السبب الذي يذكره الشريط، ثم انشر المزامنة من جديد عبر Publish sync أو Request publish approval.
  5. إذا تكرر الإخفاق نفسه، فأرسل إلينا معرّف التشغيل الظاهر تحت التشغيل الفاشل.

يقابل كل اسم إخفاق جملةً عما حدث، وجملةً عما يجب فعله بعد ذلك، ومن يصلحه: أنت أم Tajo.

اسم الإخفاقما حدثما يجب فعلهمن يصلحه
lease_conflictكان تشغيل آخر لهذه المزامنة جاريًا بالفعل.لا شيء. سينتهي التشغيل الجاري؛ ويبدأ التشغيل المجدول التالي بشكل طبيعي.Tajo
lease_lostفقد التشغيل خانته في منتصف الطريق وتوقف كي لا يكتب مرتين.شغّل المزامنة مرة أخرى.Tajo
lease_unavailableتعذّر على المزامنة حجز خانة التشغيل.شغّل المزامنة مرة أخرى. إذا فشلت بالطريقة نفسها، فأرسل إلينا معرّف التشغيل.Tajo
stale_job_sweptتوقف التشغيل عن الإبلاغ عن تقدمه وأُغلق.شغّل المزامنة مرة أخرى.Tajo
provider_rate_limitedطلب منا النظام الآخر أن نبطئ.لا شيء. انتظر التشغيل المجدول التالي.Tajo
provider_unavailableكان النظام الآخر غير متاح أو لم يرد في الوقت المحدد.لا شيء. انتظر التشغيل المجدول التالي. إذا ظلت تفشل بالطريقة نفسها يومًا كاملًا، فأرسل إلينا معرّف التشغيل.Tajo
connection_missingأداة تستخدمها المزامنة غير متصلة في مساحة العمل هذه؛ ويذكرها التشغيل باسمها.اربطها، ثم شغّل المزامنة مرة أخرى.أنت
connection_unauthorizedرفض النظام الآخر وصولنا.أعد ربط الاتصال ليحصل على تفويض جديد، ثم شغّل المزامنة مرة أخرى.أنت
destination_rejectedرفضت الوجهة كل سجلات هذا التشغيل.راجع ربط الحقول مقابل الحقول الإلزامية والتنسيقات في الوجهة، ثم شغّل المزامنة مرة أخرى.أنت
node_failedفشلت خطوة من المزامنة أثناء قراءة السجلات أو تحويلها أو كتابتها.افتح التشغيل لترى أي خطوة فشلت ولماذا، وأصلح ذلك، ثم شغّل المزامنة مرة أخرى.أنت
attestation_rule_not_activeهذه المزامنة موقوفة مؤقتًا.استأنف المزامنة لتشغيلها.أنت
attestation_publication_not_attestedلم تُنشر هذه النسخة من المزامنة.انشر المزامنة. لا تعمل التغييرات على المزامنة حتى تُنشر.أنت
unclassified_exceptionفشلت المزامنة لسبب لم نصنّفه بعد.شغّل المزامنة مرة أخرى. إذا فشلت بالطريقة نفسها، فأرسل إلينا معرّف التشغيل.Tajo

ما الذي قد يسوء

  • يجيب Retry بـ “This sync rule is already running.” (قاعدة المزامنة هذه قيد التشغيل بالفعل). تُرفض إعادة المحاولة أو التشغيل التجريبي الذي تبدأه ما دام أي تشغيل للمزامنة يظهر بحالة Queued أو Running، بما في ذلك تشغيل توقف عامل معالجته. في المزامنة التي يشغّلها Tajo وفق جدول، يُغلق ذلك التشغيل ويُستبدل متى بدأ قبل أكثر من ساعة. وفي أي مزامنة أخرى، أرسل إلينا معرّف التشغيل.
  • فشلت مزامنة لأكثر من سبعة أيام. بعد سبعة أيام ينسى سجل التسليم عملية الكتابة المكتملة. الدفعة المعادة بعد ذلك قد تكتب السجلات مرة أخرى، لذا افحص الوجهة بحثًا عن جهات اتصال مكررة.
  • مزامنة صامتة بينما تعمل أخرى. يراقب الفحص كل ساعة مساحة العمل، لا كل مزامنة على حدة. المزامنة السليمة تخفي مزامنة صامتة في مساحة العمل نفسها، لذا اقرأ Run history لكل مزامنة.
  • تريد حدودًا مختلفة. الإيقاف بعد خمسة إخفاقات والفحص على مدى 24 ساعة مضبوطان على مستوى تثبيت Tajo بأكمله، لا لكل مزامنة على حدة.

مقالات ذات صلة

هذه الصفحة بصيغة Markdown: recover-a-stuck-or-failed-sync.md

جارٍ تحميل Markdown…
فتح في Claude فتح في ChatGPT