Что не так в этом Laravel расписании - PullRequest
0 голосов
/ 26 марта 2020

Я использую планировщик Laravel для планирования своих работ. Моя проблема в том, что когда я планирую задание на 60 минут, в первый раз оно выполняется сразу же, не завершая 60 минут, и после этого оно начинает планирование на 60 минут. То, что я хочу, должно начаться планирование с самой первой попытки. Как решить эту проблему?

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

У меня есть эта команда в моем crontab и да, я заменил путь к проекту на мой путь к проекту.

protected function schedule(Schedule $schedule)
{
    foreach($scans as $scan)
    {
        $filepath='/Scan/op.xml';
        $schedule->job(new TestScan($filepath,$scan->id))->everyThirtyMinutes(); 
    } 
}

1 Ответ

0 голосов
/ 26 марта 2020

Вы пытались установить cron в своей операционной системе? Я настроил планировщик на сервере windows, и я создал cron в планировщике задач в папке проекта с помощью команды schedule:run every 1 минута.

Также я предлагаю вам поместить цикл foreach в другую функцию или даже в команду, потому что, если вы ее не измените, cron будет выполнять цикл foreach каждые 1 минуту и ​​каждые 30 mins сделает эту работу.

Также отметим, что * * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1 предназначен для создания cron на linux сервере. В Windows вы должны создать расписание задач, которое запускает команду php artisan schedule:run.

Надеемся, это решит вашу проблему. Я пока не могу комментировать.

cron в Linux: https://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/

"cron" в windows: https://www.windowscentral.com/how-create-automated-task-using-task-scheduler-windows-10

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