我创建了1个自定义Command
:
php artisan protal:process {name}
我需要为2个不同的门户(不同的name
)发出这个命令,所以如果我在我的控制台中运行它一切正常:
php artisan protal:process nameone
//wait for it to finish
php artisan protal:process nametwo
我需要在晚上用cron做同样的事情,所以这就是我提出的:
应用程序/控制台/ Kernel.php
protected function schedule(Schedule $schedule)
{
$schedule->command('portal:process nameone')->daily()->withoutOverlapping();
$schedule->command('portal:process nametwo')->dailyAt('00:10')->withoutOverlapping();
}
由于某些原因,只有第一个命令触发,第二个命令被忽略。如果我运行第二个评论第一个它可以正常工作。
也许在不同时间发出2个命令我是否必须采取除上述之外的一些不同的方法?
作为参考的答案添加,是一个评论:
我以前遇到过这个问题。问题是我从未正确关闭第一个命令(例如返回),这导致Laravel认为命令从未结束,因此从未启动下一个命令。 PHP执行line for line,所以问题可能在withoutOverlapping
中。