0

我需要运行一个播种机,它需要一些时间来执行(比如五分钟)。但我在我的 crontab 中将其设置为:

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

而且它不会自行运行。看起来它需要一个用户来执行。那么,我如何在后台运行这个播种机?

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

4

2 回答 2

1

我每天都使用 laravel 命令调度。生病的准系统如何将命令插入日程表

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

命令:这里是您为完成任务而编写的任何命令。'flags' 或 'params' 也一样,如果你不需要它们或不设置它们然后不要使用它们。

weekOn 可以更改为 hourly() everyfiveminutes()、monthly()、 Quarterly 等,请查看文档以了解语法

于 2019-10-11T15:33:58.680 回答
0

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

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

让我知道它是否有效。

于 2019-10-11T15:24:12.857 回答