برای طراحی یک سیسم پایدار همواره باید بتوانید نسبت به خطاها و اتفاقات ناخواسته رفتار مشخصی را در برنامه خود داشته باشید. از این رو استراتژیهای متفاوتی از جمله timeout، retry، fallback و ... وجود دارند.
حال در برنامه شما نیز یک کلاس به نام Avalanche
وجود دارد که وظیفه مدیریت این قابلیتها را بر عهده گرفته است و شما وظیفه دارید این قابلیتها را پیادهسازی کنید.
نکات
-
برای دانلود فایل پروژه بر روی این لینک کلیک کنید
-
مهلت زمانی - Timeout: در این تابع شما باید کدی را توسعه دهید که یک عملیات را با یک مهلت زمانی مشخص دریافت کند. در صورتی که اجرای عملیات کمتر از مهلت زمانی به طول انجامید تابع مقدار
true
و در غیر این صورت مقدارfalse
را برگرداند.
bool ExecuteWithTimeout(Action operation, int timeoutMilliseconds)
- تلاش مجدد - Retry: در این تابع شما کدی را توسعه میدهید که برای اجرای عملیات به تعداد دفعات دادهشده در فواصل زمانی مشخص و ثابت تلاش میشود. در صورتی که عملیات با موفقیت اجرا شود تابع مقدار
true
و در غیر اینصورت مقدارfalse
بر خواهد گرداند.
bool RetryOperation(Action operation, int maxRetries, int retryIntervalMs)
- پشتیبانی - Fallback: در این تابع شما همزمان با عملیات اصلی یک عملیات پشتیبان دریافت خواهید نمود تا در صورت خطای در اجرای عملیات اصلی عملیات پشتیبان را اجرا نمایید. هر دو عملیات خروجی متفاوتی خواهند داشت.
string ExecuteWithFallback(Func<string> primaryOperation, Func<string> fallbackOperation)
ارسال پاسخ برای این سؤال