Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.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请求_Php_Angularjs - Fatal编程技术网

管理长PHP请求

管理长PHP请求,php,angularjs,Php,Angularjs,所以我有一个PHP文件,它基本上调用了一个API,并获取了大量关于用户id的数据。整个请求平均需要几分钟才能完全完成。到目前为止,我有一个PHP文件可以实现这一点,我用AngularJS查询它,就像一个基本的POST请求,所以: mineData.php while data not complete { getData(); } http_response_code(200); //Send success userController.js $scope.mineData(); /

所以我有一个PHP文件,它基本上调用了一个API,并获取了大量关于
用户id
的数据。整个请求平均需要几分钟才能完全完成。到目前为止,我有一个PHP文件可以实现这一点,我用AngularJS查询它,就像一个基本的
POST
请求,所以:

mineData.php

while data not complete {
    getData();
}
http_response_code(200); //Send success
userController.js

$scope.mineData(); //Send a POST request to the PHP file
然而,由于某种原因,我几乎立即收到了一个“成功”信号,这让我相信PHP进程甚至没有运行,事实上,在检查我的数据库之后,它似乎没有运行。我如何管理像这样的长PHP作业,并向用户提供其进度的更新


编辑:看起来有时候它确实成功了,但我认为有更好的方法来授权这项任务。最佳实践是什么?我如何做到?(类似于cron作业的东西?

当我们看不到这个mineData.php在做什么时,很难准确地给出您想要的东西。但是,您可能希望将事情分开: php完成所有繁重的工作,不与用户交互 isMineDataReady.php可以是一个小脚本设置,用于检查mineData.php是否已完成

另外,如果您的脚本阻塞了用户,您可以将其移动到命令行并与exec一起运行,确保在命令末尾放置>/dev/null 2>&1&以使php继续,即使exec调用尚未完成