TGViewer
DevTwitter | توییت برنامه نویسی DevTwitter | توییت برنامه نویسی @devtwitter · 32.4K subscribers
Post #12119 9.45K
بالاخره Laravel مشکل قدیمی Job Spam رو تمیز حل کرد.
با Debounceable Queued Jobs دیگه Job‌های تکراری صف لاراول رو له نمیکنه!
این یکی از underrated‌ترین فیچرهای جدید لاراول برای پروژه‌های High Traffic هست.

از بدترین سناریوهای توی سیستم‌های Queue اینه که
یک Event یا Request پشت‌سرهم Trigger بشه و سرور شروع کنه به ساختن Jobهای تکراری.

مثلا کاربر داره داخل اپ تایپ می‌کنه، Auto Save هر 5 ثانیه اجرا میشه و هر Save هم یک Job می‌فرسته داخل Queue.

نتیجه:
ده‌ها Job تکراری، فشار روی Redis و Workerها، مصرف CPU بی‌دلیل و کند شدن سیستم.

در حالی که اکثر اون Jobها اصلا لازم نیستن! چون فقط آخرین وضعیت دیتا اهمیت داره.
حالا دیگه توی لاراول اگر چند Job «مشابه» پشت سر هم Dispatch کنیم، Jobهای وسطی حذف و فقط آخرین Job رو اجرا می‌کنه.
یعنی صف تمیزتر، بدون نویز و Performance بهتر.

این قابلیت واقعا Game Changer محسوب میشه!

قبلا از ShouldBeUnique استفاده می‌کردیم. اما این روش یک مشکل داشت:
اگر Job اول هنوز در حال اجرا بود، آپدیت‌های جدید نادیده گرفته میشدن
یعنی ممکن بود آخرین تغییرات اصلا Sync نشن.

@DevTwitter | <Ehsan Rezaei/>
  • ❤ 37
  • 🔥 9
  • 👎 3
More from @devtwitter
  1. Oct 8, 2026وقتی Redis به خواب می‌رود، صندوق ورودی کاربر تبدیل به میدان جنگ می‌شود!️ تصور کنید سیستم ن…
  2. Oct 7, 2026غول فناوری و هوش مصنوعی یک سرور قدرتمند برای نسل جدید پردازش‌های هوش مصنوعی و زیرساخت‌های…
  3. Oct 7, 2026هوش مصنوعی در دیتابیس اگر میتونستی با یک جمله ساده به PostgreSQL بگی: «فقط تیکت‌هایی رو پی…
  4. Oct 7, 2026این ریپو رو توی گشت‌وگذارام پیدا کردم و به نظرم می‌تونه منبع خیلی خوبی برای آماده شدن برای…
  5. Oct 7, 2026🔥 به‌دلیل استقبال شما، تخفیف‌های پاییزی کندو تمدید شد! اگه هنوز دوره‌ت رو انتخاب نکردی یا…
  6. Oct 7, 2026یه پچ برای zcode نوشتم: توی کل محیط zcode هر پاراگراف که حرف فارسی داشته باشه به صورت هوشم…
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 →