我正在尝试设置一个可以每五分钟运行一次的调度任务,但它只能运行一次,在前五分钟后,其他五分钟不能正常运行。
//的排热死啊死counter.PHP
protected $signature = 'updates:depresiasicounter';
public function handle()
{
$aktivatb = Aktivatb::where('id','1')->first();
$aktivatb->nilai= $aktivatb->nilai-$aktivatb->depresiasi;
$aktivatb->total_depresiasi = $aktivatb->total_depresiasi+$aktivatb->depresiasi;
$aktivatb->save();
}
//kernel.PHP
protected $commands = [
Commands\DepresiasiCounter::class,
];
protected function schedule(Schedule $schedule)
{
$schedule->commands('updates:depresiasicounter')->everyFiveMinutes();
}
我希望它可以工作,直到$ aktivatb-> nilai的值为0,但它只能工作1次
你需要设置cron所以它可以运行php artisan schedule:每分钟运行命令,所以你需要将以下Cron条目添加到你的服务器。
* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1
这个Cron每分钟都会调用Laravel命令调度程序。然后,Laravel评估您的计划任务并运行到期的任务。
使用调度程序时,只需将以下Cron条目添加到服务器即可。
计划任务基本上是系统正在运行命令
php /project-path/artisan schedule:run
每一段时间。
在Linux环境中,人们使用cron通过创建crontab来处理这个问题
* * * * * php /project-path/artisan schedule:run
命令前面的那些星号标志表示命令的间隔。
在Windows环境中,您可以参考以下answer。
或者,您可以设置虚拟机并在计算机内运行cron作业。