Laravel 拉威尔4号的克朗任务
我正在尝试了解如何在Laravel4中设置cron作业,以及需要在artisan中运行的命令Laravel 拉威尔4号的克朗任务,laravel,laravel-4,cron,command,Laravel,Laravel 4,Cron,Command,我正在尝试了解如何在Laravel4中设置cron作业,以及需要在artisan中运行的命令 在Laravel 3中,有任务,但这些任务似乎不再存在,也没有关于如何执行的文档…任务已被替换,这与Laravel 4中的任务相同,但与Symfony的控制台组件集成,甚至比以前更强大。替代,如果您不喜欢命令,有一个非正式的Laravel 4 cron包:下面我详细介绍了在Laravel 4中使用cron的命令的教程。为了便于遵循,我将其分为四个步骤 步骤#1:在Laravel 4中创建命令: 使用上
在Laravel 3中,有
任务
,但这些任务似乎不再存在,也没有关于如何执行的文档…任务已被替换,这与Laravel 4中的任务相同,但与Symfony的控制台组件集成,甚至比以前更强大。替代,如果您不喜欢命令,有一个非正式的Laravel 4 cron包:下面我详细介绍了在Laravel 4
中使用cron的命令的教程。为了便于遵循,我将其分为四个步骤
步骤#1:在Laravel 4中创建命令:
使用上面的命令,Laravel将在目录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 = 'refresh:stats';
步骤2:RefreshStats文件的简单“配置”:
您应该更改此行:
protected $name = 'command:name';
protected function getArguments() {
return array(
array('example', InputArgument::REQUIRED, 'An example argument.'),
);
}
对这样的事情:
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 = 'refresh:stats';
如果不需要参数(选项相同),请更改此行:
protected $name = 'command:name';
protected function getArguments() {
return array(
array('example', InputArgument::REQUIRED, 'An example argument.'),
);
}
致:
现在请注意fire
功能。该命令将执行在该函数中编写的源代码。例如:
public function fire(){
echo "Hello world";
}
步骤3:注册命令:
您需要注册该命令。因此,打开app/start/artisan.php
文件,添加一行,如下所示:
Artisan::add(new RefreshStats);
步骤4:创建CRON计划任务:
最后,您可以按如下方式添加计划任务:
crontab -e
并添加一行(每30分钟运行一次命令),如下所示:
*/30 * * * * php path_laravel_project/artisan refresh:stats
所有这些都将自动工作 好的,我发现在Laravel4.2中设置cron很有用。我发现这篇文章也很有用。显示了如何准确地调用crontab中的“command”:非常好explanation@tomloprod如何检查cron是否工作?你写回音“你好,世界”;在fire()函数中,但它将在其中打印“Hello world”。我知道它的基本原理,但我对php是新手。@AdarshTiwari这是一个简单的例子。这将在控制台中打印Hello world
。您必须编写代码,而不是回显“Hello world”
。例如,发送邮件:mail(“foo@bar.es“,”主题“,”你好世界“,”发件人:fromemail@foo.es");
@tomloprod,你能解释一下我应该在哪里写crontab-e
和*/30****php path\u laravel\u project/artisan refresh:stats
?@vijayrana取决于你的开发环境。您试图在哪里使用命令?