سؤال

لدي بعض البرامج النصية ، باستخدام pika.SelectConnection للتواصل مع خادم RabbitMq.

هل هناك طريقة لجعل تلك البرامج النصية تحاول إعادة الاتصال تلقائيًا بخادم rmq ، في حالة تعطل الخادم ، أثناء عمل النص البرمجي؟

هل كانت مفيدة؟

المحلول

لدي الكثير من البرامج النصية التي تستخدم النهج التالي لإعادة الاتصال: giveacodicetagpre.

لا يستخدم Pika، لكن Kombu، ومع ذلك، يمكن تطبيق المبادئ.طريقة GiveAcodicetAchode هي جوهر تستهلك الرسائل، أي حلقات في تلقي الرسائل إلى الأبد وإدارة رد الاتصال لمعالجة الرسالة.كما ترون هنا لدي توقيت مكتبة المقبس منخفض المستوى كل 25 ثانية.مع بعض المكتبات، اضطررت إلى التصحيح بضعة خطوط من التعليمات البرمجية للحصول على هذا السلوك للعمل دون تعطل داخل الوحدة النمطية.

على أي حال، تتم مراقبة نبضات القلب التي يتم إرسالها بواسطة HB.Beat بواسطة عملية المشرف وستقتل هذه العملية البرنامج النصي إذا كان هناك الكثير من الإخفاقات في فترة زمنية قصيرة جدا.بعد قتل البرنامج النصي، أدار المشرف ذلك.لقد عمل ذلك جيدا في التعامل مع أخطاء الشبكة المتقطعة أو إعادة تشغيل وسيط MQ.بينما كان بإمكاني جعل البرنامج النصي يقوم بإعادة الاتصال، فقد كان أكثر بساطة لقتل وإعادة التشغيل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top