在cronjob的控制台控制器方法中运行前端Web控制器方法yii2

时间:2016-07-05 10:30:23

标签: yii2-advanced-app php-5.6

我在 frontend / controllers / FollowupcandidteclientController 中有一个索引方法 我在运行这个控制器方法后返回一些值。

下面是我的代码(仅供参考)

class FollowupcandidteclientController extends \ yii \ web \ Controller {

    public function actionIndex()
     {

     $a=2;
     $b=3;
     $c=$a + $b;
     return $c;

 }

}

我在控制台/ controllers / CronjobController中设置了控制器名称CronjobController的cronjob。

在这里,我有一个名为runcron()的方法。

我想在 cronjob控制器 runcron 方法中运行followupcandidateclient / index

以下是我的cronjob代码

命名空间控制台\ controllers;

使用Yii;

使用yii \ console \ Controller;

CronjobController类扩展了Controller {

public function actionRuncron(){

此处此操作应在执行cronjob时运行 index.php?r = followupcandidateclient / index

      }

}

>吗

如果有任何机构在这个问题上帮助我,那将是非常非常感谢的。 提前致谢。

1 个答案:

答案 0 :(得分:0)

我认为最简短的方法就是curl

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "yourdomain/index.php?r=followupcandidateclient/index"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$output = curl_exec($ch); 
curl_close($ch);  

// use $output if needed

如果您无法通过互联网在cron中访问它,那么您可以像这样启动PHP服务器(使用适当的端口号):

$ cd /path/to/your/index.php/
$ PHP -S localhost:8002

然后在curl请求中,您可以使用localhost:8002代替yourdomain