我在实时服务器(Linux)上的laravel中设置后台时间表。我正在使用bitnami。但是时间表:当我使用这样的命令时,运行不起作用
我也是这样试过的。
没有发生错误,但计划无效。
当我这样做的时候
没有星号(*)然后它工作,但只处理了一个命令,我设置为我的日程表中的每分钟像这样
但是当我运行schedule时它只运行一次:run命令之后什么都不做。我每小时,每天等打电话的其他命令根本不起作用。
任何人都可以告诉可能是什么问题吗?
答案 0 :(得分:2)
使用https://bitnami.com/stack/lamp
处提供的Bitnami LAMP堆栈以下是我在Laravel上成功设置Schedule的步骤:
在Apache congirutation文件/opt/bitnami/apache2/conf/bitnami/bitnami-apps-prefix.conf
上取消注释以下行:
#Include "/opt/bitnami/lampstack-5.6.26-3/frameworks/laravel/conf/httpd-prefix.conf"
在文件/opt/bitnami/frameworks/laravel/app/Console/Kernel.php
上编辑方法计划:
protected function schedule(Schedule $schedule)
{
$schedule->exec('echo "Hello World"')
->everyMinute()
->appendOutputTo('/tmp/laravel.log');
}
重启Apache:sudo /opt/bitnami/ctlscript.sh restart apache
/opt/bitnami/php/bin/php /opt/bitnami/frameworks/laravel/artisan schedule:run >> /dev/null 2>&1
结果:
你应该访问:
Bitnami Laravel文档: https://docs.bitnami.com/general/components/php-frameworks/#laravel
Laravel官方文档(日程安排):https://laravel.com/docs/5.3/scheduling
答案 1 :(得分:0)
Laravel的php artisan schedule:run
命令只运行一次调度程序。为了使其工作,您需要将此命令添加到位于/ etc目录的cron配置文件(crontab)。请按照以下步骤操作:
第1步:
将cron条目添加到crontab文件[使用nano /etc/crontab
]
* * * * * root php path/to/artisan schedule:run
注意: - ****的意思是每分钟运行一次命令 -root是用户名,您应该指定适当的用户名 - 请在你的laravel项目中指定artisan命令的完整路径。
第2步: 重启服务
> sudo service cron reload
> sudo service cron stop
> sudo service cron start
要检查cron的状态,请运行sudo service cron status
第3步: 确保您在App / Console / Kernel中的计划功能中编写了代码。这是我在那里写的:
protected function schedule(Schedule $schedule)
{
$schedule->call(function(){
Mail::send([],[],
function ($m){
$m->to(['test@example.com'],'Notify')
->subject('Renewal Notification')
->setBody('You have upcoming renewal.');
});
})->everyTenMinutes();
}
Laravel提供了许多功能来安排您的呼叫或命令。我使用过everyTenMinutes()
函数。但是,Laravel在内部处理这些日程安排,我们应该只确保在cron配置文件中使用单个条目(在步骤1中提到)经常调用schedule:run
命令。