هنگام توسعه برنامه های کاربردی انعطاف پذیر و قدرتمند، هندل کردن خطاهای گذرا که ممکن است به دلیل مشکلات شبکه، در دسترس نبودن سرویس یا سایر مشکلات متناوب رخ دهد، بسیار مهم است. الگوی Retry یک رویکرد قابل اعتماد برای رسیدگی به این خطاهای گذرا با تلاش مجدد خودکار برای عملیات ناموفق برای تعداد معینی از زمان تا موفقیت یا یک بازه زمانی مشخص است.
یکی از بهترین و معروف ترین فریم ورک های مدیریت خطاهای گذرا و تاب آوری Polly است.
این آموزش اجرای الگوی Retry را با استفاده از Polly، در یک برنامه NET Core بررسی می کند. در این آموزش از Minimal API ها و دات نت 8 استفاده شده است.
Polly چیست؟
Polly یک چارچوب انعطافپذیری برای دات نت است که به عنوان کتابخانه استاندارد دات نت در دسترس است، بنابراین می تواند روی سرویس های وب، برنام ههای دسکتاپ، برنام ههای تلفن همراه و داخل کانتینرهای شما اجرا شود — هرجا که .NET قابل اجرا باشد.
تا به امروز، Polly بیش از 265 میلیون بار دانلود شده است و به راحتی می توان دلیل آن را فهمید. تنها با چند خط کد، Polly میتواند درخواستهای ناموفق را دوباره امتحان کند، پاسخ های قبلی را در کش نگه دارد، از منابع شما محافظت کند، از درخواست شما برای سرویس های خراب جلوگیری کند، درخواست هایی را که بیش از حد طول می کشند خاتمه دهد و در صورت عدم موفقیت، یک مقدار پیش فرض را برگرداند. همچنین این برنامه thread safe است و در تماس های sync و async می کند.
Retry در Polly چیست؟
همان طور که از نام آن پیداست، خط مشی Retry به شما امکان می دهد یک درخواست ناموفق را به دلیل یک exception یا نتیجه غیرمنتظره یا نتیجه بد که از کد فراخوانی شده بازگردانده شده است، دوباره امتحان کنید. Retry قبل از تلاش مجدد منتظر نمی ماند، پس مراقب باشید. اگر مشکلی که باعث شکست درخواست شده است به احتمال زیاد خود به خود تقریباً بلافاصله حل نمی شود، تلاش مجدد ممکن است کمکی نکند. حتی ممکن است اوضاع را بدتر کند. خط مشی Retry به شما امکان می دهد قبل از انصراف، تعیین کنید که چند بار تکرار باید انجام شود.
چرا الگو Retry مهم است؟
در برنامه ها و سیستم های امروزی، مشکلات کوچک یا مشکلات شبکه ممکن است رخ دهد. این اشکالات می توانند نحوه کار کردن را مختل کنند. برای اینکه کارها به خوبی پیش بروند، الگوی Retry کمک زیادی می کند. لگوی Retry مانند یک برنامه پشتیبان است که تضمین می کند کارها حتی در صورت وجود برخی از مشکلات همچنان در حال اجرا هستند.
چه موقع باید از الگوی Retry استفاده کرد
عملیات شبکه: الگوی Retry برای مدیریت عملیات مربوط به شبکه که در آن خطاهای گذرا مانند مهلت زمانی یا مشکلات اتصال ممکن است رخ دهد، مناسب است.
تماس های خدمات خارجی: هنگام ادغام با سرویس های خارجی که ممکن است با خرابی های متناوب مواجه شوند مفید است.
چه موقع نباید از الگوی Retry استفاده کرد
عملیاتهای غیر توانمند: از Retry برای عملیات های غیر توانمند (مثلاً عملیاتی که داده ها را تغییر می دهند) خودداری کنید زیرا ممکن است منجر به عوارض جانبی ناخواسته در چندین بار تکرار شود.
شکست های غیر گذرا: هنگام برخورد با خرابی های دائمی یا غیرقابل بازیابی، ممکن است Retry مشکل را تشدید کند.
نتیجه گیری
پیاده سازی الگوی Retry با استفاده از Polly در یک برنامه وب .NET Core، انعطاف پذیری برنامه را با مدیریت عالی خطاهای گذرا افزایش می دهد. سادگی و پیکربندی Polly آن را به ابزاری قدرتمند برای مدیریت استراتژی های هندل کردن خطا تبدیل می کند و در نتیجه قابلیت اطمینان برنامه ها را در مواجهه با خرابی های متناوب بهبود میبخشد. درک اینکه چه زمانی باید Retry را اعمال کرد و چه زمانی از آن اجتناب کرد، برای استفاده موثر از مزایای آن در سناریوهای مختلف بسیار مهم است.
برای ثبت نظر باید در سایت ثبت نام یا ورود نمایید