Я работаю над проектом, используя PHP и Yii2 framework. У него есть задача, требующая много запросов на получение данных через API, и для завершения требуется одна минута. Чтобы избежать ожидания пользователя, я попытался использовать функцию exec() и перенаправить вывод в другой файл. Чтобы сделать лучше UXexec with In Yii2
Я пробовал этот код в отдельных файлах 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?
Есть ли альтернативные способы достижения этой цели
Спасибо
Спасибо @jovani. Вы имеете в виду использование очереди, как RabbitMQ? – Nabeel
yup. но вы можете попытаться посмотреть на beanstalkd. :) @ Набел – jovani