Solución:
ACTUALIZAR
Creé el paquete composer mxl / laravel-job que proporciona el comando Laravel para enviar trabajos desde la línea de comando:
$ composer require mxl/laravel-job
$ php artisan job:dispatch YourJob # for jobs in app/Jobs directory (AppJobs namespace)
$ php artisan job:dispatch 'PathToYourJob' # dispatch job by its full class name
$ php artisan job:dispatchNow YourJob # dispatch immediately
$ php artisan job:dispatch YourJob John 1990-01-01 # dispatch with parameters
El paquete también proporciona una forma de reducir la repetición mediante el uso de base Job
clase y tiene FromParameters
interfaz que permite implementar el análisis de parámetros de la línea de comandos y usar el trabajo desde el código PHP y la línea de comandos simultáneamente.
Lea más sobre sus características en la página del paquete de GitHub.
ANTIGUA RESPUESTA
Correr
php artisan make:command DispatchJob
para crear un comando artesanal especial que ejecute trabajos.
Abierto creado DispatchJob.php
archivar y definir DispatchJob
clase como esta:
class DispatchJob extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature="job:dispatch {job}";
/**
* The console command description.
*
* @var string
*/
protected $description = 'Dispatch job';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$class="\App\Jobs\" . $this->argument('job');
dispatch(new $class());
}
}
Ahora deberías iniciar el trabajador de cola:
php artisan queue:work
y después de eso, puede ejecutar trabajos desde la línea de comando:
php artisan job:dispatch YourJobNameHere
Si está utilizando un QUEUE_DRIVER
diferente a sincronizar y desea enviar una cola que ha creado antes, desde la carpeta de su proyecto ejecute el comando:
php artisan queue:work --queue=MyQueueName
Consulte este enlace para configurar un base de datos QUEUE_DRIVER