سلام و خسته نباشید به همگی ...
بهتره با مثال توضیح بدم: در لاراول شما کارهایی که قراره در صف بزارید مثل ارسال ایمیل ها ، در دیتابیس در جدول job ذخیرش میکنید
و وقتی در cmd دستور php artisan queue:work رو میزنید یک سرور منتظر میمونه تا هر row که به جدول اضافه میشه بره و کار مربوط بهش رو انجام بده ...
این که منتظر میمونه و وقتی دیتایی وارد دیتا بیس میشه و .... چطور انجام میشه ...
و اینکه اصلا این سیستم صف ها به چه شکلی چیده میشن
@Serjik
سلام
بقران نمیدونم
سرور منتظر نمیمونه! اگه قرار باشه منتظر بمونه باید چیزی شبیه nodejs باشه که event ایجاد بشه و یک listener داشته باشه.
درون لاراول یک کوئری زده میشه و جاب ها رو از درون دیتابیس میگیره و هرکدوم رو یکی یکی اجرا میکنه و در اخر هم کار تموم بشه قطع میشه روند اجرا. به بعدش اگه چیز جدیدی اظافه بشه ران نمیشه! باید دوباره از اول دستور اجرای جاب رو بزنید.
شما برای اجراهای بعدی باید از کرون جاب استفاده کنید.
شاید پاسخ شما همینجا باشد
@khanzadimahdi
شوخی کردم بااوووو
نمیدونم یا من اسمش رو اشتباه میگم یا هر مشکلی که از سمت من هست ، به کنار
وقتی برای مثال یک کلاس event رو implements میکنیم از ShouldQueue اون event در صف قراره میگیره یا به عبارتی میره و داخل دیتابیس ذخیره میشه... درسته؟
اگه درسته ... وقتی من queue:work or queue:listen میزنم کارهای لازم رو انجام میده و وقتی باز event صدا زده میشه کاری که قرار بوده event انجام بده در صف قرار میگیره و اجرا میشه بلافاصله
اینهایی که گفتم درستن؟
@hesammousavi
اومدم اینجا پرسیدم چون فکر میکردم قبلا کسی بهش برخورده باشه
@Serjik
منم الان دارم بهتون میگم دنبال این commad در هسته بگردید کدی که توش قرار داره اینکار رو میکنه با خودنش میتونید درکنید چه شکلی اینکار انجام میشه.
@hesammousavi
بله
بسیار ممنونم ازتون
همینم که به عنوان بهترین پاسخ انتخاب کردم ... با توجه به کدهایی که در هسته لاراول و job خوندم ، متوجه شدم که در کل همچین کاری انجام داده میشه
دوستانی که براشون سواله بدونن :)
سلام میشه نتیجه تون رو اعلام کنید؟ (جمع بندی)
@Serjik