Size: a a a

Laravel для начинающих

2021 October 06

SD

Sergey Donin in Laravel для начинающих
например так, обрати внимание на setTimeout и ->start()  А вообще-то RTFM
`
$process = new Process([
   
$this->phpBinaryPath, "artisan", "….", …..,
]);
$process->setTimeout
(0);
$process->disableOutput
();
$process->start
();`
источник

SD

Sergey Donin in Laravel для начинающих
нет , это не для того, не влияет
источник

D

Dimases in Laravel для начинающих
$process = new Process(['/php/php73/bin/php','-c','/home/tst/cgi-bin/php73.ini', base_path() . '/artisan','command:tools-theard','4'],base_path());
       $process->setTimeout(0);
       $process->disableOutput();
       $process->start();
       dump($process->getPid());

ощущение, что при
       $process->setTimeout(0);
       $process->disableOutput();
не выполняется... хотя там сейчас простота
       $task_id=$this->argument('data');
       info($task_id);
       sleep(10);
       dd($task_id);
Убираю, в laravel.log info есть, но висит 10 секунд
источник

SD

Sergey Donin in Laravel для начинающих
не понял. Так висит потому что sleep(10) , не?
источник

R#

Reset # Alexey S. in Laravel для начинающих
а на кой так запускать то команду ?
источник

R#

Reset # Alexey S. in Laravel для начинающих
Artisan::call
источник

SD

Sergey Donin in Laravel для начинающих
может это у него что-то демоно подобное с while(true) внутри
источник

D

Dimases in Laravel для начинающих
в том и дело, что он должен пустится бэкграундом без ожидания вывода, как в shell_exec('команда &')
источник

R#

Reset # Alexey S. in Laravel для начинающих
так можно в самой команде сделать while и все
источник

D

Dimases in Laravel для начинающих
минут 10 он может висеть легко. поэтому надо пустить и отключится.
источник

R#

Reset # Alexey S. in Laravel для начинающих
хотя я не помню точно - он будет ждать конца команды, да ?
источник

D

Dimases in Laravel для начинающих
а pid там как получить? да и Artisan::call("command:tools-theard", ['data' => 4]); тоже висит 10 тестовых секунд
источник

V

Vladyslav in Laravel для начинающих
dispatch(function () {
    \Artisan::call('process:pricing');
});
источник

V

Vladyslav in Laravel для начинающих
вот и запуск в фоне
источник

V

Vladyslav in Laravel для начинающих
🤷🏿‍♂️🤷🏿‍♂️
источник

SD

Sergey Donin in Laravel для начинающих
не, тогда выполнение запускаемого процесса остановится на этом ::call`
источник

R#

Reset # Alexey S. in Laravel для начинающих
ты задачу полностью опиши
источник

SD

Sergey Donin in Laravel для начинающих
а очередь он настроил?
источник

D

Dimases in Laravel для начинающих
у меня есть работающее решение:
$cmd = getenv('PHP_EXEC') . ' ' . base_path() . "/artisan command:tools-theard {$id} > /dev/null &";
exec($cmd);

но я коль учу Лару я хочу ее методами
источник

V

Vladyslav in Laravel для начинающих
🤷🏿‍♂️🤷🏿‍♂️
источник