استراتيجيات التخفيف من حالات تسابق الويب هوك

أهلاً بالجميع! :waving_hand:

أعمل على بناء مزامنة ثنائية الاتجاه بين Discourse و Discord. على جانب Discourse، أستخدم خطافات الويب (webhooks) لأحداث المواضيع والمنشورات (إنشاء، تعديل، حذف، استعادة) لتمرير التحديثات إلى قنوات Discord المقابلة. الاتجاه الآخر يتم التعامل معه باستخدام روبوت مبني باستخدام discord.js.

لقد واجهت بعض المشكلات في جعل البرامج الوسيطة (middleware) الخاصة بي تتعامل مع الأمور بسلاسة — ويرجع ذلك أساسًا إلى حالة سباق (race condition) بين وقت استقبال خطافات الويب للمواضيع والمنشورات.

أود الحصول على بعض النصائح حول أفضل طريقة للتعامل مع هذا. حاليًا، أفكر في التخلي عن خطافات الويب للمواضيع تمامًا والاعتماد على كل شيء حول أحداث المنشورات (باستخدام topic_id كوحدة توحيد). ومع ذلك، أفضل إيجاد طريقة لجعل إعدادي الحالي يعمل بدلاً من إعادة كتابة كل شيء من الصفر.

أي رؤى أو اقتراحات ستكون محل تقدير كبير! :folded_hands:

3 إعجابات

لقد قررت للتو جلب القيم وملء بعض البيانات قبل أن يكون الموضوع في قاعدة بياناتي

إعجاب واحد (1)

هل هذا يعني أنك تتلقى خطاف الويب الخاص بـ post قبل خطاف الويب الخاص بـ topic؟ نظرًا لطبيعة ذلك غير المتزامنة، فقد يحدث ذلك بالفعل.

إعجابَين (2)

لذلك كنت أقوم بإرسال خطافات مواضيع وخطافات منشورات على حد سواء، لكنني تحولت إلى إرسال خطافات منشورات فقط واستخدام ما هو متاح فيها لربط المواضيع > المواضيع

إعجابَين (2)

هذا تغيير جيد، سيجعل نظامك أكثر موثوقية، وكما ذكرت، يمكنك دائمًا اللجوء إلى طلبات واجهة برمجة التطبيقات (API) لإثراء البيانات.

إعجابَين (2)