cron作业与Laravel 4(Cron Job with Laravel 4)

2019-07-18 17:07发布

我试图找出如何建立一个cron作业在Laravel 4,并命令我需要在工匠运行它。

在Laravel 3,有Tasks ,但这些似乎并没有在那里了,没有文档至于如何做到这一点?

Answer 1:

任务已替换为命令 ,这是在Laravel 4同样的事情,但与Symfony的控制台组件集成,甚至比以前更强大。



Answer 2:

下面我详细用于使用教程commandsLaravel 4使用Cron。 我已经分为四个步骤,使之更容易遵循。


第1步:在Laravel 4创建命令:

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),
            );
        }

}



STEP 2:RefreshStats文件的简单的“ 配置 ”:

你应该改变这一行:

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";    
}



第3步:注册命令:

您需要注册的命令。 因此,开放app/start/artisan.php文件,并添加一行如下:

Artisan::add(new RefreshStats);



第4步:创建CRON计划任务:

最后,您可以添加计划任务如下:

crontab -e

并添加一行( 每30分钟运行命令 ),如下图所示:

*/30 * * * * php path_laravel_project/artisan refresh:stats



一切就会自动地工作!



Answer 3:

选择,如果你不喜欢命令有一个非官方的Laravel 4 cron包: https://github.com/liebig/cron



文章来源: Cron Job with Laravel 4