Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 拉威尔4号的克朗任务_Laravel_Laravel 4_Cron_Command - Fatal编程技术网

Laravel 拉威尔4号的克朗任务

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中创建命令: 使用上

我正在尝试了解如何在Laravel4中设置cron作业,以及需要在artisan中运行的命令


在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取决于你的开发环境。您试图在哪里使用命令?