Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.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
Php Yii2中的执行官_Php_Parallel Processing_Yii2_Yii2 Advanced App - Fatal编程技术网

Php Yii2中的执行官

Php Yii2中的执行官,php,parallel-processing,yii2,yii2-advanced-app,Php,Parallel Processing,Yii2,Yii2 Advanced App,我正在做一个使用PHP和Yi2框架的项目。它有一项任务,需要发出许多请求才能通过API获取数据,完成这项任务大约需要一分钟。为了避免让用户等待,我尝试使用exec()函数并将输出重定向到其他文件。使用户体验更好 我在单独的PHP文件(在Yii之外)中尝试了这段代码,它工作得非常好 exec("php process.php > output.php 2>&1 & echo $!", $output); 一旦我尝试使用以下命令在Yii中执行它,它就不起作用了 publ

我正在做一个使用PHP和Yi2框架的项目。它有一项任务,需要发出许多请求才能通过API获取数据,完成这项任务大约需要一分钟。为了避免让用户等待,我尝试使用exec()函数并将输出重定向到其他文件。使用户体验更好

我在单独的PHP文件(在Yii之外)中尝试了这段代码,它工作得非常好

exec("php process.php > output.php 2>&1 & echo $!", $output);
一旦我尝试使用以下命令在Yii中执行它,它就不起作用了

public function actionIndex() {
    $url = Url::to(['user/dofile'], TRUE);
    exec("php $url > testoutput.php 2>&1 & echo $!", $output);
    return $this->render('index');
}
出现错误

Could not open input file: http://localhost/weez/frontend/web/index.php?r=user%2Fdofile
有没有办法让它在Yii行动中发挥作用

有没有其他方法可以实现这一点


谢谢

您不能像
php$url
那样执行,而希望php解析它。试试
curl-O$url


但是,为了补充原始问题(“避免让用户等待”),可以尝试实现“排队”

谢谢你,乔瓦尼。你是说像RabbitMQ一样使用排队吗?是的。但你也可以试着看看豆茎@纳比尔