我需要运行一个播种机,执行该过程需要花费一些时间(例如五分钟)。但我在crontab中将其设置为:
0 0 * * * php /var/www/.../api/artisan db:seed --class=ApiPlayerStatisticsSeeder
它本身不是运行的。看起来需要用户执行。因此,我如何在后台运行此播种器?
我尝试制作命令并像内核文件(https://laravel.com/docs/5.8/scheduling#scheduling-artisan-commands)中的任务一样在backgruound中运行,但是它也不起作用。
答案 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(),每季度等,请检查文档的语法