在laravel中自定义cron运行时间?

goucqfw6  于 2023-01-06  发布在  其他
关注(0)|答案(2)|浏览(131)

我有一个文件Commands/DateUpdate.php

protected $signature = 'date:update';
public function handle()
{
    $listSchedule = Schedule::where('dateSchedule', '=', strtotime('now'))->get()->toArray();
    $dateSchedule = [];
    foreach ($listSchedule as $value) {
        $dateSchedule[] = $value['dateSchedule'];
    } 
    var_dump($dateSchedule);
    // result
    // array(3) {
    //     [0]=>
    //     string(16) "2023-01-05 09:16"
    //     [1]=>
    //     string(16) "2023-01-05 11:45"
    //     [2]=>
    //     string(16) "2023-01-05 15:25"
    //   }

}

Kernel.php$schedule->command('date:update');中,我想根据$dateSchedule变量中的时间安排它。

foreach ($dateSchedule as $item) {
    ->at($item);
};

如何才能做到这一点?

rsaldnfx

rsaldnfx1#

您可以使用

foreach ($dateSchedule as $item) {
    $schedule->call(function () {
        $this->call('date:update');
    })->at($item);
};
lnxxn5zx

lnxxn5zx2#

您可以尝试将当前时间与dateSchedule进行比较

foreach ($listSchedule as $value) {
  if (now()->diffInMinutes($value['dateSchedule']) === 0) {
    $this->call('another:command');
  }
}

相关问题