Почему нельзя зацикливать функцию каждые 5 минут?(cronjob, планирование задач laravel) - PullRequest
0 голосов
/ 26 апреля 2019

Я пытаюсь настроить задачу планирования, которая может выполняться каждые пять минут, но она работает только 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();
}

// kernel.php

protected $commands = [
        Commands\DepresiasiCounter::class,
    ];


protected function schedule(Schedule $schedule)
{
    $schedule->commands('updates:depresiasicounter')->everyFiveMinutes();
}

Я ожидаю, что это может работать, пока значение $ aktivatb-> nilai не станет равным 0, но это работает только 1 раз

Ответы [ 2 ]

1 голос
/ 26 апреля 2019

Запланированная задача - это, в основном, система, выполняющая команду

php /project-path/artisan schedule:run

каждый заданный промежуток времени.

В среде Linux люди используют cron для обработкиэто путем создания crontab

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

Эти звездочки перед командой указывают интервал команды.

В среде Windows вы можете обратиться кследующий ответ .

Или вы можете настроить виртуальную машину и запустить задание cron внутри машины.

0 голосов
/ 26 апреля 2019

Вам нужно настроить cron, чтобы он мог запускать график php artisan schedule: запускать каждую минуту, поэтому вам нужно добавить следующую запись Cron на ваш сервер.

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

Этот Cron будет вызывать планировщик команд Laravel каждую минуту. Затем Laravel оценивает запланированные задачи и запускает задачи, которые должны быть выполнены.

При использовании планировщика вам нужно всего лишь добавить следующую запись Cron на ваш сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...