رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در ایجاد Process جدید در لاراول 5.2
#1
سلام خدمت دوستان گرامی.
من برای پیاده سازی صف در لاراول 5.2 باید از queue:listen به صورت کد توی کنترلرم (نه ترمینال) استفاده کنم.من این کارو با استفاده از کلاس Process انجام دادم و دستور listen رو اجرا کردم.و همونطور ک میدونید این دستور هرلحظه در حال گوش دادن به صف هستش تا به محض اضافه شدن رکورد جدید، اونو اجرا کنه.
با تحقیق هایی ک کردم متوجه شدم که باید یک پراسس جدید ایجاد بشه تا دستورqueue:listen جدا از پراسس اصلی سایت همیشه در حال گوش دادن به صف باشه.اما وقتی پراسس جدید ایجاد میکنم، با تموم شدن بلاک کد زیر، پراسس من تموم میشه.در صورتی که باید پراسس در حال اجرا بمونه.
تموم شدن پراسس رو اینجوری متوجه شدم که بعد از متد start() ، با استفاده از sleep، 10 ثانیه تاخیر دادم به اجرای کد و متوجه شدم که توی این 10 ثانیه، پراسس من در حال اجرا هستش ولی به محض رسیدن به خط آخر، پراسس کلا از بین میره و عملا دیگه listen ای در کار نیس !
سوال اصلی من اینه ک چطور باید این پراسس رو حفظ کرد ک با پایان قطعه کد، پراسس همچنان در حال اجرا و گوش دادن به صف باشه 
اینم کد :


 public function run_job_commands(Request $request)
   {


       $php = PHP_BINARY;
       $artisan = base_path('artisan');
       $process = new Process("$php $artisan queue:listen --timeout 120 --env=stage  --queue=test ", base_path());
       $process->start();
       //sleep(20);
   }



بنظرتون راه حل چیه ؟!
پاسخ
تشکر شده توسط:
#2
سلام شما باید از Cron Job توی هاست استفاده کنید

https://laravel.com/docs/5.4/scheduling
موفقیت، نتیجه تشخیص درست است؛ تشخیص درست، نتیجه تجربه است؛ تجربه نیز اغلب نتیجه تشخیص نادرست است.



پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان