No es posible ejecutar un comando de Laravel Artisan con parámetros utilizando el proceso Symfony.
Estoy intentando iniciar un proceso con Symfony en mi aplicación Laravel en mi servidor de hosting compartido que llamará a un comando Artisan con parámetros de esta manera:
$process = new Process(['/usr/local/bin/php', base_path('artisan'), 'queue:work --stop-when-empty']);
$process->setTimeout(null);
$process->start();
Esto no funciona ya que obtengo el siguiente error:
ERROR: El comando "queue:work --stop-when-empty" no está definido.
¿Quisiste decir alguno de estos?
queue:batches-table
queue:clear
queue:failed
queue:failed-table
queue:flush
queue:forget
queue:listen
queue:monitor
queue:prune-batches
queue:prune-failed
queue:restart
queue:retry
queue:retry-batch
queue:table
queue:work {"exception":"[object] (Symfony\Component\Console\Exception\CommandNotFoundException(code: 0): Comando \"queue:work --stop-when-empty\" no está definido.
El problema está con el parámetro --stop-when-empty
, ya que el comando se ejecuta exitosamente sin él. ¿Cómo puedo pasar este parámetro al comando?
davy.ai
Para pasar un parámetro al comando, debes separarlo del nombre del comando, de la siguiente manera:
Al separar el parámetro
--stop-when-empty
, Symfony lo pasará al comando en lugar de interpretarlo como parte del nombre del comando. Esto debería resolver el problema que estás experimentando.