هل يمكننا أن ننتظر محرك تطبيق PeopleSoft لانتظار إكمال الرسائل غير المتزامنة؟

StackOverflow https://stackoverflow.com//questions/22022400

سؤال

أحاول معالجة تحميل البيانات حيث أحاول نشر الرسائل من خلال peoplesoft فوق وسيط التكامل بشكل غير متزامن في محرك التطبيق. النقطة كلها هي أن تكون قادرا على إرسال العديد من الرسائل وتستهلكها في نفس العقدة. قبل أن أرسل الرسائل، أقوم بتخزين البيانات على جدول (قل T1) لتخزين جميع القيم الحقلية في ملف التحميل.

أثناء الاستهلاك الذي أحاول فيه عرض كل رسالة إلى واجهة المكونات وتسجيل الاستثناءات على نفس الجدول T1. دعنا نقول لكل معاملة، نرفض حقل الجدول (قل processed_flag= 'y').

أحتاج إلى آلية حيث يمكنني فقط الانتظار لجميع الرسائل غير المتزامنة لإكمالها. أفكر في التحقق من جدول T1، إذا كان هناك أي صفوف على جدول T1 حيث processed_flag هو "n"، فما عليك سوى جعل النوم للنوم لمزيد من الوقت. في حين أن جميع الرسائل لا تتم معالجتها تبقيها نائما ولا تدع محرك التطبيق مكتمل.

الفائدة الوحيدة التي يمكنني الحصول عليها هي لست مضطرا لانتظار مثيلات متعددة مرة واحدة أو لا تضطر إلى جعل المكالمة المتزامنة. تتمثل الفكرة الكاملة في استخدام المكون من خلال المعاملات المختلفة (كما لو كان يستخدم من قبل القول 100 شخص -> 100 المعاملات).

ما لم تكن هذه المعاملات 100 كاملة، فسوف نتأكد من أن جدول T1 يحتفظ بسجل لما يحدث وإيقاف تشغيله. إذا كان هناك خطأ ما، فيمكنه تسجيل الاستثناءات التي يتم صيدها بواسطة CI.

سيكون موضع تقدير أي تعليقات على هذا النهج. شكرا مقدما!

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

المحلول

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

لذلك، قررنا السماح لمحرك التطبيق بالكامل ونشر جميع قطع البيانات من خلال الرسائل وتأكد من أن الرسائل تستهلك بالكامل في نفس العقدة.

  1. سنقوم بتحديث الجدول T1، لجميع الصفوف المعالجة / الناجحة / الفاشلة كما نستمر في استهلاك الرسائل واستخدامها حسب الحاجة.

  2. سنحتفظ بمراجعة أو عداد لجميع الصفوف المنشورة ويستهلكها. نظرا لأن تعريض نفس المكونات على المعاملات المتعددة سيكون تأثيرا كبيرا للأداء. نريد أن نتأكد من أنه يعمل بشكل أفضل، كما لو كان هناك 50 من المستخدمين يقومون بتحديث نفس الجداول خلف المكونات باستخدام نفس CI (بالطبع مثيلات مختلفة). سأكون إكمال دليلي على المفهوم ونأمل أن يكون أفضل بكثير من تشغيل العمليات بالتوازي.

  3. آمل أن يساعد ذلك أي شخص يتعامل مع هذه المشكلات الإضافية. شكرا!

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