为什么它不能每5分钟循环一次这个功能? (cronjob,任务调度laravel)

问题描述 投票:0回答:2

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

//的排热死啊死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次

php laravel web-services scheduling
2个回答
1
投票

你需要设置cron所以它可以运行php artisan schedule:每分钟运行命令,所以你需要将以下Cron条目添加到你的服务器。

* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1

这个Cron每分钟都会调用Laravel命令调度程序。然后,Laravel评估您的计划任务并运行到期的任务。

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


1
投票

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

php /project-path/artisan schedule:run

每一段时间。

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

* * * * * php /project-path/artisan schedule:run

命令前面的那些星号标志表示命令的间隔。

在Windows环境中,您可以参考以下answer

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

© www.soinside.com 2019 - 2024. All rights reserved.