التعامل مع اتصال إنترنت غير مستقر في تطبيق Server-Client

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

سؤال

ما هي التكنولوجيا التي يمكنني استخدامها لإدارة اتصال الإنترنت غير المستقر في تطبيق عميل Server. أعرف أساسا PHP (+ إطار zend)، تعلم C # & ASP.NET MVC. سمعت WCF / MSMQ هو شيء يمكن أن يساعده ... ولكن كيف ... هل هناك شيء ما يمكن أن تفعله PHP (أنا أكثر دراية)؟ ولكن من الجيد أيضا معرفة البديل .NET إذا كان ذلك أفضل

الخلفية:

سيقوم العميل *** *** بالاتصال بالملقم DB للقيام بالحكومة. ولكن إذا فشل الاتصال بالإنترنت، فلن يكون ذلك ممكنا. فكيف يمكنني إصلاح هذا؟

الحل المستخدم الآن كان لديه localhost db's. في نهاية اليوم، سيتم تحميل جميع العملاء إلى الخادم والتنزيل الصباحي "موحد" DB من الخادم. هذا ليس مضمونا حيث التحميل / التنزيل قد لا يزال يفشل. والنظر في نقل البيانات الكبيرة من البيانات، فإنه يزيد في الواقع من الفرص.

تحديث: هل هناك إطار php / zend / استبدال mysql ل msmq / wcf؟

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

المحلول

يمكن أن يساعد WCF، لأنه يدعم تقنيات مختلفة لنقل الرسائل الموثوقة.

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

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

وبالطبع، فإن الحل النهائي هو التحرك نحو الروابط الأكثر موثوقية. ليس بالضرورة أسرع، ولكن فقط أكثر موثوقية.

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