Php 为什么它不能每5分钟循环一次函数?(cronjob、任务调度laravel)

Php 为什么它不能每5分钟循环一次函数?(cronjob、任务调度laravel),php,laravel,web-services,scheduling,Php,Laravel,Web Services,Scheduling,我正在尝试设置一个调度任务,可以每五分钟运行一次,但它只运行一次,在前五分钟之后,其他五分钟不能正常运行 //depresiasicounter.php protected $signature = 'updates:depresiasicounter'; public function handle() { $aktivatb = Aktivatb::where('id','1')->first(); $aktivatb->nilai= $aktivatb

我正在尝试设置一个调度任务,可以每五分钟运行一次,但它只运行一次,在前五分钟之后,其他五分钟不能正常运行

//depresiasicounter.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:run命令每分钟一次,因此您需要向服务器添加以下cron条目

* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1
这个Cron每分钟都会调用Laravel命令调度程序。然后,Laravel评估您计划的任务并运行到期的任务


使用调度程序时,只需将以下Cron条目添加到服务器

计划任务基本上是指系统正在运行命令

* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1
php /project-path/artisan schedule:run
每一个给定的时间量

Linux环境中,人们使用cron通过创建crontab来处理这个问题

* * * * * php /project-path/artisan schedule:run
命令前面的星号表示命令的间隔 指挥部

Windows环境中,您可以参考以下内容


或者,您可以设置一个虚拟机并在该机内运行cron作业。

使用
$schedule->command(
没有
s
然后再试一次?我试过了,但它仍然可以工作一次。我可以在本地主机上运行cron吗?我尝试过使用php artisan schedule:运行,但它仍然不能工作。您使用的是什么操作系统?我使用的是windows10 proYes,您可以,但首先必须在本地系统上为Laravel设置cron