【发布时间】:2015-06-03 02:57:03
【问题描述】:
我现在面临的问题是我不知道如何在 PHP 中实现非阻塞请求。在我的应用程序中,任何用户活动都会被存档,并且此存档过程可能需要一些相当长的时间 - 最多 5-10 秒。由于这个用户界面(在 JavaScript 中)不再响应,因为它还依赖于对服务器的请求。所以,假设我像这样向服务器发出请求(使用ExtJS 库,这在此处无关紧要):
Ext.Ajax.request({
url:'/handlers/archive.php', // my handler which I want to make non-blocking
method:'POST',
params:{...} // some parameters submitted to the server
});
... here are other multiple request to the server
... they are now waiting for the completion of heavy archive.php procedure
那么,如何让这个 php 程序真正实现非阻塞呢?任何非阻塞过程的工作示例都会非常有帮助。
【问题讨论】:
-
“阻止 PHP”并不是真正的问题。问题只是一个请求耗时过长。您可以通过稍后执行缓慢的任务来加快 PHP 必须完成的工作;例如您将一些数据放在某个地方,然后让 cron 作业根据该数据执行较慢的任务。
标签: php