Laravel定時任務執行的指令的時間不确定,我根據文檔添加了withoutOverlapping(),但是好像沒有生效
開發環境:windows 10, laradock ,Laravel 5.4.36
相關代碼
kernel的代碼
$schedule->command('produce:email')->withoutOverlapping();
指令的代碼
public function handle()
{
$name = mt_rand(10000,99999);
Log::info($name . ':開始運作時間'.date('Y-m-d H:i:s'));
$this->parseAppName();
$this->createQueue();
arsort($this->queue);
if(count($this->queue) <= 0){
return ;
}
foreach ($this->queue as $key => $queue) {
$this->getHistoryId($key,$queue['filter']);
$this->executeAdd($key,$queue);
}
Log::info($name .':結束運作時間'.date('Y-m-d H:i:s'));
}
輸出的日志檔案如下: 80781任務結束前系統新開了8個任務
[2018-07-10 03:23:18] local.INFO: 80781:開始運作時間2018-07-10 03:23:18
[2018-07-10 03:24:07] local.INFO: 91189:開始運作時間2018-07-10 03:24:07
[2018-07-10 03:25:05] local.INFO: 73828:開始運作時間2018-07-10 03:25:05
[2018-07-10 03:26:09] local.INFO: 96934:開始運作時間2018-07-10 03:26:09
[2018-07-10 03:27:06] local.INFO: 79930:開始運作時間2018-07-10 03:27:06
[2018-07-10 03:28:13] local.INFO: 39674:開始運作時間2018-07-10 03:28:13
[2018-07-10 03:29:06] local.INFO: 44935:開始運作時間2018-07-10 03:29:06
[2018-07-10 03:30:16] local.INFO: 40087:開始運作時間2018-07-10 03:30:16
[2018-07-10 03:31:05] local.INFO: 42935:開始運作時間2018-07-10 03:31:05
[2018-07-10 03:31:26] local.INFO: 91189:結束運作時間2018-07-10 03:31:26
[2018-07-10 03:31:26] local.INFO: 80781:結束運作時間2018-07-10 03:31:26