0

我需要在队列中运行一项工作,这需要很长时间(大约 2 小时)。它检查某些特定服务的可用性。因此,我没有将一项作业运行两个小时,它不断(每分钟)发出一个 API 请求,我想使用laravel 的调度来排队作业。我可以通过 Artisan 助手从任何地方调用调度程序:

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,但我认为这不是正确的方法。

4

1 回答 1

0
  1. 发出工匠命令。例如:

    php artisan make:command DispatchJobFromDynamicCalculatedArg

  2. 在这个工匠命令中计算你想要的任何东西。

  3. 使用实际包含您需要的进程的参数调度目标作业。
  4. 在 Kernel.php 文件中安排上述工匠命令。

而已。

于 2019-10-30T08:29:45.197 回答