有没有一种方法可以将参数传递给在laravel中调度排队作业?
我需要在队列中运行作业,这需要很长时间(大约2小时)。它检查某些特定服务的可用性。因此,我不想让一个作业运行两个小时(每个fice分钟)不断地发出API请求,而是想使用。我可以通过Artisan helper从任何位置调用调度程序:有没有一种方法可以将参数传递给在laravel中调度排队作业?,laravel,queue,laravel-scheduler,Laravel,Queue,Laravel Scheduler,我需要在队列中运行作业,这需要很长时间(大约2小时)。它检查某些特定服务的可用性。因此,我不想让一个作业运行两个小时(每个fice分钟)不断地发出API请求,而是想使用。我可以通过Artisan helper从任何位置调用调度程序: Artisan::call('schedule:run', [ 'args' => $args ]); 这会分派一份工作。但我不知道如何在kernel.php中传递参数($arg1,$arg2,…),这是我的作业文件所需要的 // Dispatch t
Artisan::call('schedule:run', [
'args' => $args
]);
这会分派一份工作。但我不知道如何在kernel.php中传递参数($arg1,$arg2,…),这是我的作业文件所需要的
// Dispatch the job to the "heartbeats" queue...
$schedule->job(new Heartbeat($arg1, $arg2, ..), 'heartbeats')->everyFiveMinutes();
我试图在schedule方法中传递args,但我认为这不是正确的方法
php artisan make:command DispatchJobFromDynamicCalculatedArg
就是这样。
php artisan schedule:run
是一个命令,您应该只在crontab
中使用。如果您想创建作业,我建议您自己使用命令来分派作业。然后,您自己的命令可以像这样获得您的args:谢谢Rob。我期待着这个答案,但仍然不确定,因为有一种方法可以在没有参数的情况下从调度器中分派作业。我只是通过另一种方式实现了我的目标:在我的工作中检查。。如果服务不可用,则发出ServiceNotAvailable事件,其侦听器等待5分钟并调用相同的作业。如果可用,则发出ServiceAvailableEvent。谢谢。我想我可以单独使用artisan命令,但不能与scheduler一起使用。因为在我的服务可用之前,我需要多次从作业文件运行schedule,所以在调用schedule:run时仍然需要传递参数。