Laravel 11 / Foundation\Bus PendingChain::catchCallbacks()

laravel 11 pendingchain catchcallbacks
18 فروردین 1404

آشنایی با استفاده از PendingChain در لاراول


سلام دوستان! امروز می‌خوایم درباره استفاده از PendingChain در لاراول ۱۱ صحبت کنیم. احتمالا شما هم بارها با Job ها در لاراول کار کردید و می‌دونید که چقدر می‌تونن در پردازش‌های پس‌زمینه و مدیریت وظایف کاربردی باشن. حالا تصور کنید که بخواید چندین وظیفه رو به صورت زنجیره‌ای انجام بدید، به این معنا که هر وظیفه پس از اتمام وظیفه قبلی شروع بشه. اینجاست که PendingChain به کار میاد.


با استفاده از PendingChain، شما می‌تونید چند وظیفه رو به عنوان یک زنجیره مشخص کنید، و اگر بخواید، می‌تونید با catchCallbacks به راحتی به دستاوردهای این زنجیره دسترسی پیدا کنید. این ویژگی به شما این امکان رو میده که ببینید آیا وظایف شما با موفقیت انجام شدند یا نه و در صورت بروز خطا چه کارهایی باید انجام بشه.


در این مقاله، ما به بررسی catchCallbacks می‌پردازیم و یک مثال ساده از چگونگی استفاده از آن در لاراول ۱۱ ارائه میدهیم. همچنین با همدیگه نگاهی به چگونگی ثبت callbacks برای کارهای موفق و ناموفق خواهیم داشت. این کار به شما این امکان رو میده که عملکردهای مختلفی رو بر اساس نتایج کارها انجام بدید.


نحوه استفاده از PendingChain


در این بخش، ما به بررسی چند خط کد می‌پردازیم که چگونه می‌توانیم از PendingChain و catchCallbacks استفاده کنیم. با من همراه باشید!


$chain = Bus::chain([
new FirstJob(),
new SecondJob(),
])->catchCallbacks(function () {
// انجام کار در صورت بروز خطا
})->dispatch();

توضیح کد


در اینجا خط اول، ما از متد chain برای ایجاد یک زنجیره از وظایف استفاده می‌کنیم. ما دو Job به نام‌های FirstJob و SecondJob را به زنجیره اضافه می‌کنیم.


در خط دوم، به catchCallbacks اشاره می‌کنیم که این متد یک callback به ما میده تا در صورتی که هر یک از وظایف با خطا مواجه بشن، این کدها اجرا بشن. در اینجا، می‌تونید کارهایی مثل ثبت خطا یا ارسال ایمیل به مدیر سیستم رو پیاده‌سازی کنید.


در نهایت، با صدا زدن متد dispatch، این زنجیره وظایف رو به صف پردازش می‌فرستید. به یاد داشته باشید که این متد وظایف رو به صورت تدریجی اجرا می‌کنه.


سوالات متداول

؟

PendingChain در لاراول چیه؟

؟

چطور می‌تونم از catchCallbacks استفاده کنم؟

؟

فرق بین Job و PendingChain چیه؟