Как я могу запустить сеялку из cronjob в Laravel? - PullRequest
0 голосов
/ 11 октября 2019

Мне нужно запустить сеялку, на что требуется время (например, пять минут). Но я установил его в моем crontab как:

0 0 * * * php /var/www/.../api/artisan db:seed --class=ApiPlayerStatisticsSeeder

И он не запускается сам по себе. Похоже, что для выполнения требуется пользователь. Итак, как я могу запустить эту сеялку в фоновом режиме?

Я попытался создать команду и запустить в backgruound как задачу в файле ядра (https://laravel.com/docs/5.8/scheduling#scheduling-artisan-commands),, но она тоже не работает.

Ответы [ 2 ]

0 голосов
/ 11 октября 2019

Я использую расписание команд laravel ежедневно. заболел скелетом, как я вставляю команду в расписание

$schedule->exec('php artisan command:here --flags 4434 --params 32')
    ->weeklyOn(3,'9:30');

команда: вот только какая команда вы написали для выполнения своей задачи. То же самое касается «флагов» или «параметров», если они вам не нужны или не установлены, то не используйте их.

weeklyOn может быть изменено на ежечасный () каждые пять минут (), ежемесячный (), ежеквартальный и т. Д. Пожалуйста, проверьте документы на синтаксис

0 голосов
/ 11 октября 2019

В вашем cronjob сначала перейдите в каталог вашего приложения, а затем вызовите команду ремесленника. Вот так:

0 0 * * * cd /path/to/app && php artisan db:seed --class=ApiPlayerStatisticsSeeder

Дайте мне знать, если это сработало.

...