راکت
حل شده

اجرا شدن همیشه queue:work در cpanel

9 پاسخ

سلام من میخوام دستور queue:work مثل دستور artisan serve همیشه در حال اجرا باشه روی هاستم
یجا خوندم باید از supervisor استفاده کنم ولی من تا حال باهاش کار نکردم و نمیدونم چی به چیه!
راه اسونتریم هست برای این کار؟ دوستانی که این کارو انجام دادن راهنمایی کن ممنون میشم

ثبت پرسش جدید

پاسخ‌ها

9
سینا خاقانی
سینا خاقانی
@sina.it91

تخصص: توسعه دهنده بک‌اند

بهترین پاسخ

@miladparsi1070
سلام اول یه کرون جاب یک دقیقه ای در سرورتون به صورت زیر تعریف کنید

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

بعد برید به آدرس App/console/kernel.php و در تابع schedule دستور زیر رو تعریف کنید

protected function schedule(Schedule $schedule)
    {
        // $schedule->command('inspire')->hourly();
        $schedule->command('queue:work --stop-when-empty')
            ->cron('* * * * *')
            ->withoutOverlapping(5);
    }

اینجوری همیشه صفهای شما فعاله و هیچ فشاری هم به سرور وارد نمیشه

عرفان همتی
عرفان همتی
@erfanhemmati

تخصص: Backend Developer

@miladparsi1070
سلام. شما عملا نمی‌تونید از supervisor روی هاست‌های اشتراکی استفاده کنید.
به جاش می‌‌تونید یه کرون جاب ست کنید که دستور php artisan queue:work رو هر یک دقیقه یکبار ران کنه.

رضا پارسیان
رضا پارسیان
@Rp76

تخصص: توسعه دهنده Php , Laravel

@erfanhemmati

سلام اینکار رو نباید بکنید
چون کرون جاب هایی که فعالیت های زمان دار رو اجرا میکنند بعد از ۱ دقیقه بسته نمیشوند و بعد از گذشت ۱ ساعت حداقل ۶۰ تا فعالیت باز کرده حداقل باید اینکارو کنید

php artisan queue:work --once

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

میلاد هدایت پور
میلاد هدایت پور
@miladparsi1070

تخصص: در حال پیشرفت

@Rp76
یعنی من اینو توی ترمینال cpanel بزنم این دستور همیشه اجرا میشه؟ دقیق متوجه نشدم

میلاد هدایت پور
میلاد هدایت پور
@miladparsi1070

تخصص: در حال پیشرفت

@erfanhemmati
اره این. اخرین راه گذاشته بودم
@sina.it91
من نمیدونم چجوری تو سرور کرون جاب درست کنم
اگه کامل راهنمایی کنید ممنون میشم چون حس میکنم مشکلم حل شه اینجوری
من کل پروژه رو توی یه فولدر به اسم خود پروژه ریختم. شرکتی که هستم اینجوری آپلود میکنن
الان من دستور اول رو کجا دقیقا بزنم؟؟

سینا خاقانی
سینا خاقانی
@sina.it91

تخصص: توسعه دهنده بک‌اند

@miladparsi1070
تو cpanel بخش advanced باید یه چیزی به نام cron jobs داشته باشه
اونجا یه کرون جاب یک دقیقه ای تعریف میکنی و دستوری که گفتم (آدرس پروژه ی خودت) رو وارد میکنی
تو اینترنت سرچ کنی آموزشش هست

مهدی
مهدی
@mrmmg

تخصص: برنامه نویس و طراح وب

@Rp76

سلام
پاسختون جالب بود و تاحالا ندیده بودمش

اگر flag که گفتید رو اضافه کنیم در واقع هر دقیقه یک تسک رو اجرا میکنه یا یکبار کل صف اجرا میشه و بعدش بسته میشه؟

ممنون میشم توضیح بدید.

رضا پارسیان
رضا پارسیان
@Rp76

تخصص: توسعه دهنده Php , Laravel

@mrmmg
@miladparsi1070

سلام این دستور که من گفتم هر دقیقه یک دستور رو اجرا میکنه
چرا از این دستور من استفاده کردم؟
اجرا کردن یک queue فعالیت زمان بری هست.
وقتی cron job این فعالیت رو صدا میزننه اون فعالیت تا جایی که امکانش باشه باز میمونه مگر این که به مشکلی بخوره یا سرور ریستارت بشه.
حالا اکر هر دقیقه این عمل انجام بشه کلی از منابع شمارو میگیره و سرور down میشه.

میلاد هدایت پور
میلاد هدایت پور
@miladparsi1070

تخصص: در حال پیشرفت

@Rp76
مرسی از پاسخ خوبتون ممنون

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

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