我正在开发一个使用 PHP 和 Yii2 框架的项目。它有一项任务需要发出许多请求才能通过 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 动作中起作用?
是否有替代方法来实现这一点
谢谢