管理长PHP请求

时间:2015-11-17 21:12:29

标签: php angularjs

所以我有一个PHP文件,基本上调用API并获取大量关于user_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工作的东西?)

1 个答案:

答案 0 :(得分:0)

当我们看不到这个mineData.php正在做什么时,很难给出你想要的东西。但是,您可能想要拆分: mineData.php完成了所有繁重的工作,没有与用户交互 isMineDataReady.php可能是一个小脚本设置,用于检查mineData.php是否已完成。

另外,如果您的脚本占用了用户,您可以将其移动到命令行并使用exec运行它,请确保将> / dev / null 2>& 1&在命令结束时使php继续,即使exec调用尚未完成