وب‌سرویس مجید

پروژه retry-go

avast/retry-go

چیزی که این پروژه ارائه می‌ده، یک کتابخانه ساده و کاربردی به زبان Go هست که به راحتی می‌تونی ازش برای پیاده‌سازی مکانیزم تلاش مجدد (retry) استفاده کنی.

کاربرد:

وقتی با سرویس‌های خارجی کار می‌کنی، گاهی درخواست‌ها به دلیل مشکلات موقتی مثل قطعی شبکه یا سرور بیش‌ازحد شلوغ شکست می‌خورن. این کتابخانه بهت کمک می‌کنه تا به صورت خودکار چندین بار دوباره درخواست رو ارسال کنی تا موفق بشی.

در چه شرایطی بهتره استفاده شود؟

وقتی با APIهای خارجی کار می‌کنی، درخواست‌های حساس داری یا می‌خوای از خطاهای موقتی جلوگیری کنی، استفاده از این کتابخانه عالیه. همچنین برای سیستم‌هایی که نیاز به پایداری بالا دارن، مناسبه.

چند مثال از موارد استفاده:

ارسال دوباره درخواست به یک API وقتی پاسخ 503 Service Unavailable داده شود

تلاش مجدد برای اتصال به دیتابیس پس از قطعی موقت

ارسال پیام به صف پیام‌رسانی مثل RabbitMQ وقتی اتصال شکست خورده

  • ##retry
  • ##golang
  • ##microservices
  • ##resilience
  • ##network
  • ##api
  • ##go
  • ##reliability
  • ##avast
  • ##backoff