我试图找出如何建立一个cron作业在Laravel 4,并命令我需要在工匠运行它。
在Laravel 3,有Tasks
,但这些似乎并没有在那里了,没有文档至于如何做到这一点?
我试图找出如何建立一个cron作业在Laravel 4,并命令我需要在工匠运行它。
在Laravel 3,有Tasks
,但这些似乎并没有在那里了,没有文档至于如何做到这一点?
任务已替换为命令 ,这是在Laravel 4同样的事情,但与Symfony的控制台组件集成,甚至比以前更强大。
下面我详细用于使用教程commands
在Laravel 4
使用Cron。 我已经分为四个步骤,使之更容易遵循。
php artisan command:make RefreshStats
有了上面的命令,Laravel将创建一个文件名为RefreshStats.php
目录app/commands/
RefreshStats.php是这样的文件:
use Illuminate\Console\Command;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\InputArgument;
class RefreshStats extends Command {
protected $name = 'command:name';
protected $description = 'Command description.';
public function __construct() {
parent::__construct();
}
public function fire(){
}
protected function getArguments() {
return array(
array('example', InputArgument::REQUIRED, 'An example argument.'),
);
}
protected function getOptions() {
return array(
array('example', null, InputOption::VALUE_OPTIONAL, 'An example option.', null),
);
}
}
你应该改变这一行:
protected $name = 'command:name';
对这样的事情:
protected $name = 'refresh:stats';
如果你不需要参数( 同为选项 ),改变这一行:
protected function getArguments() {
return array(
array('example', InputArgument::REQUIRED, 'An example argument.'),
);
}
至:
protected function getArguments() {
return array();
}
现在要注意 fire
功能。 该命令将执行在该函数写源代码。 例:
public function fire(){
echo "Hello world";
}
您需要注册的命令。 因此,开放app/start/artisan.php
文件,并添加一行如下:
Artisan::add(new RefreshStats);
最后,您可以添加计划任务如下:
crontab -e
并添加一行( 每30分钟运行命令 ),如下图所示:
*/30 * * * * php path_laravel_project/artisan refresh:stats
选择,如果你不喜欢命令有一个非官方的Laravel 4 cron包: https://github.com/liebig/cron