管理长PHP请求
所以我有一个PHP文件,它基本上调用了一个API,并获取了大量关于管理长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(); /
用户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调用尚未完成