TGViewer
DevTwitter | توییت برنامه نویسی DevTwitter | توییت برنامه نویسی @devtwitter · 32.7K subscribers
Post #11327 6.41K
بحث $tries در Jobهای لاراول دوباره داغ شده و معمولاً وقتی عددهای بزرگی مثل ۶۰ یا ۱۰۰ دیده می‌شود، سریع برچسب «طراحی بد» می‌خورد.
اما واقعیت کمی دقیق‌تر از این قضاوت ساده است.

در حالت عادی، استفاده از $tries بزرگ می‌تواند نشانه‌ی این باشد که داریم یک مشکل ریشه‌ای را با retry پنهان می‌کنیم. این اتفاق معمولاً در Jobهایی می‌افتد که یا idempotent نیستند یا مرز خطاهایشان مشخص نیست.

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

یک الگوی جالب این است که $tries > 1 را همراه با $maxExceptions = 1 استفاده کنیم.
در این حالت Job فقط زمانی دوباره اجرا می‌شود که خودمان به‌صورت کنترل‌شده release() را صدا بزنیم و اگر یک exception غیرمنتظره رخ دهد، Job وارد چرخه‌ی retry بی‌پایان نمی‌شود.

نکته‌ی مهم اینجاست که retry زیاد بدون backoff یعنی مصرف منابع بدون حل مسئله. retry محدود، همراه با backoff منطقی یعنی سیستم مقاوم و قابل اتکا.

در نهایت، مسئله این نیست که $tries چند است.
مسئله این است که آیا retry بخشی از طراحی آگاهانه‌ی سیستم است یا فقط واکنشی عجولانه به خطاها.

@DevTwitter | <Mohammad Javad Ranjbar/>
  • ❤ 19
  • 👎 1
More from @devtwitter
  1. Oct 17, 2026تست‌نویسی با زبان معمولی ابزار e2e تست‌های وب و موبایل رو با دستور انگلیسی اجرا می‌کنه. بع…
  2. Oct 17, 2026جایگزین اختصاصی برای React؟! تلگرام وب عملا Zero dependency ساخته شده. توی دنیای وب که هر…
  3. Oct 17, 2026🔥 اشتراک یک ماهه Gemini Pro با قیمت ویژه! 🤖 خرید اشتراک Gemini Pro فقط با 290 هزار تومان…
  4. Oct 17, 2026GhostIDE — آینده کدنویسی ایرانی یک IDE ایرانی که در حال حاضر در مرحله بتا است و برای رقابت…
  5. Oct 17, 2026یکی با Gemini 4 Argon یه بازی تو سبک Subway Surfers با ماشین جدید پرنده تسلا رودستر ساخته.…
  6. Oct 17, 2026من همیشه توی پروژه‌های AI Engineering روی Evaluation یا همون Eval تأکید ویژه‌ای دارم و همی…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →