سؤال

هل لدى أي شخص مجموعة من أفضل الممارسات التي يرغبون في مشاركتها فيما يتعلق بمعالجة أخطاء Workerrole Azure؟ كنت سأشبه أي أفكار قد تكون لديك حول كيفية التعامل مع شروط الخطأ المستمرة (أي حيث يكون الوصول إلى مورد خارجي مثل خدمة ويب انخفاض مؤقتًا لعدة ساعات). شكرًا.....

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

المحلول

يمكنك التحقق من استثناء معالجة سياسات العمل كتلة تطبيق .NET في هذه الحالة (قد تعمل الكسارة أو الاسترداد البسيط للترجع).

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

علي سبيل المثال:

var policy = ActionPolicy
  .Handle<CommunicationException>()
  .CircuitBreaker(1.Minutes(), 2);

var recordSet = policy
  .Get(() => remoteRepository.GetRecords(someCriteria));

Lokad.Cloud (ل Azure) يستخدم المشروع مفتوح المصدر السياسات نفسها من مكتبات Lokad المشتركة.

NB: سياسات العمل متوافقة مع إعادة إعادة تخزين Azure:

var policy = ActionPolicy.Handle<StorageServerException>().Retry(5);
queueService.RetryPolicy = policy.Do;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top