راکت
حل شده

queue laravel

5 پاسخ

سلام دوستان یه سوال ما برای اجرای یک job حتما باید توی terminal دستور php artisan queue:work رو وارد کنیم
خب اگه اینجوریه که وقتی سایت رو تحویل مشتری میدیم باید خودمون بالا سر سایت وایسیم هرشب این دستور رو بزنیم البته میدونم اینجوری نیست دوستان لطفا راهنمایی کنن باتشکر
@muhammad

ثبت پرسش جدید

پاسخ‌ها

5
رضا جهانگیر
رضا جهانگیر
@rezajahangir

تخصص: Full-Stack Developer

بهترین پاسخ

شما اول باید یه cron job یک دقیقه ای به صورت زیر در سرورتون تعریف کنید.

/usr/local/bin/php /home/myProject/public_html/core/artisan schedule:run >/dev/null 2>&1

بعد به فایل Kernel.php برید و به صورت زیر عمل کنید.

protected function schedule(Schedule $schedule) {
    $schedule->command('queue:work --queue=createUser')
    ->cron('* * * * *');
}
رضا جهانگیر
رضا جهانگیر
@rezajahangir

تخصص: Full-Stack Developer

سلام.
شما باید داخل فایل Kernel.php این کار رو انجام بدین، نه به صورت دستی داخل ترمینال.
داخل اینترنت سرچ کنید، متوجه میشید.
موفق باشید.

Muhammad
Muhammad
@muhammad

تخصص: Back-End Developer

صف شما یا اینکه مستمر کار می‌کنه، یا اینکه در بازه‌های زمانی تعداد خاصی از جاب‌هارو هندل می‌کنین. اولی متوقف نمیشه، برای دومی هم از کران‌جاب استفاده می‌کنین.
https://laravel.com/docs/8.x/queues#queue-workers-and-deployment
https://laravel.com/docs/8.x/scheduling

شاید پاسخ شما همین‌جا باشد

مهدی
مهدی
@MM20001378

سلام ممنون از جواب هاتون خب دقیقا مشکل منم همینه ببینید من وقتی که از kernel استفاده میکنم مثلا میخوام هر یک دقیقه یک کاربر برای من بسازه بطور مثال عرض کردم خب حالا اسم اون Job هست createUser خب حالا برای اجرای این دستور من باید توی ترمینالم اینو بنویسم دیگه php artisan queue:work --queue=createUser خب من چجوری بیام این رو تعریف کنم که هر مثلا یه دقیقه یکبار بیا این کد رو اجرا کنم میدونم باید توی کرنل قرارش بدم ولی توی kernel باید این دستور رو قرار بدم؟ خواهش میکنم اگه نمونه کدی دارید برام بزارید بدجوری گیج شدم ممنون
@muhammad
@rezajahangir

مهدی
مهدی
@MM20001378

خیلی ممنون اوکی شد
@rezajahangir

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام