我正在尝试设置一个可以每五分钟运行一次的调度任务,但它只工作 1 次,在前五分钟之后,其他五分钟没有正确执行该功能。
//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();
}
内核.php
protected $commands = [
CommandsDepresiasiCounter::class,
];
protected function schedule(Schedule $schedule)
{
$schedule->commands('updates:depresiasicounter')->everyFiveMinutes();
}
我希望它可以工作,直到 $aktivatb->nilai 的值为 0,但它只能工作 1 次
计划任务基本上是系统正在运行命令
php /project-path/artisan schedule:run
每隔给定的时间量。
在Linux环境中,人们使用cron通过创建一个crontab来处理这个问题。
* * * * * php /project-path/artisan schedule:run
命令前面的那些星号表示命令。
在Windows环境中,您可以参考以下答案。
或者,您可以设置虚拟机并在机器内运行 cron 作业。
您需要设置 cron,以便它可以每分钟运行一次 php artisan schedule:run 命令,因此您需要将以下 Cron 条目添加到您的服务器。
* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1
这个 Cron 将每分钟调用一次 Laravel 命令调度程序。然后,Laravel评估您的计划任务并运行到期的任务。
使用调度程序时,只需将以下 Cron 条目添加到服务器。