2016-12-07 55 views
-2

我已经安装了用于转储我的数据库的Laravel软件包。 该插件运行查找,但我想每天运行它作为一个cronjob。在Kernel.php中运行artisan命令

这里是Kernel.php插入命令:

$schedule->command('db:backup')->dailyAt('01:50'); 

不幸的是,什么也没做。 是否可以在没有Command类的情况下直接在Kernel.php中运行artisan命令?

+0

使用'exec'而不是'command'。这应该工作。 – Ohgodwhy

+0

你可以给我一个例子,看起来像我的代码与exec()? –

+0

您通常如何从命令行调用该命令?是'php artisan db:backup?'如果是这样,那么你可以在' - > exec()'语句中做同样的事情。 – Ohgodwhy

回答

1

您是否确定将任务添加到您的系统crontab?通常位于/ etc/crontab中

* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1 

https://laravel.com/docs/5.3/scheduling

PHP不具有执行自己的方式,所以你需要建立一个系统任务调用工匠每一秒,所以laravel可以评估的cron表达式并根据需要运行它们。