如何在Laravel的cronjob中运行播种机?

时间:2019-10-11 14:59:34

标签: php laravel cron laravel-seeding laravel-jobs

我需要运行一个播种机,执行该过程需要花费一些时间(例如五分钟)。但我在crontab中将其设置为:

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

它本身不是运行的。看起来需要用户执行。因此,我如何在后台运行此播种器?

我尝试制作命令并像内核文件(https://laravel.com/docs/5.8/scheduling#scheduling-artisan-commands)中的任务一样在backgruound中运行,但是它也不起作用。

2 个答案:

答案 0 :(得分:0)

在您的cronjob上,首先将CD插入应用程序的目录,然后调用artisan命令。像这样:

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

让我知道它是否有效。

答案 1 :(得分:0)

我每天使用laravel命令调度。准系统生病了

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

命令:这是您为完成任务而编写的任何命令。如果不需要或不设置它们,则不要使用它们。

weeklyOn可以更改为hourly()每隔5minutes(),monthly(),每季度等,请检查文档的语法