有没有使异步PHP中的HTTP请求,而不抛出响应任何理智的方法是什么? 即,类似于AJAX的东西 - PHP脚本发起请求,确实是自己的事情,后来,当接收到响应,一个回调函数/法或其他脚本处理响应。
一种方法穿过我的脑海 - 产生一个新的PHP程序与其他脚本为每个请求 - 第二脚本执行请求,等待响应,然后解析数据,但不管它应该,而原来的脚本继续产卵新工艺。 我怀疑,但是,关于此情况下的性能 - 必须有一些性能损失就不必每次都创建一个新的进程。
有没有使异步PHP中的HTTP请求,而不抛出响应任何理智的方法是什么? 即,类似于AJAX的东西 - PHP脚本发起请求,确实是自己的事情,后来,当接收到响应,一个回调函数/法或其他脚本处理响应。
一种方法穿过我的脑海 - 产生一个新的PHP程序与其他脚本为每个请求 - 第二脚本执行请求,等待响应,然后解析数据,但不管它应该,而原来的脚本继续产卵新工艺。 我怀疑,但是,关于此情况下的性能 - 必须有一些性能损失就不必每次都创建一个新的进程。
是的,这取决于你的网站的流量,产卵一个单独的PHP进程中运行的脚本可能是灾难性的。 这将是更有效地使用了shell_exec()来启动一个后台进程,节省了输出到你已经知道文件名,但即使这可能是资源密集的。
你也可以拥有存储在数据库中的请求队列。 一个单一的,独立的后台进程将拉动工作,执行它,并保存输出,可能在你的Web程序可以检查数据库设置一个标志。
如果你要使用DB队列的方式,使用curl_multi *类的功能,一次发送所有排队的请求。 这将限制每次迭代的执行时间在你的后台进程最长请求时间。
V5可以不带螺纹的,但你可以创建一个利用过程中的多任务应用。
看看下面的文章:“发展与PHP V5多任务应用”的IBM developerWorks上。 你可以在这里找到它http://www.ibm.com/developerworks/web/library/os-php-multitask/