3

不是在收到 HTTP 请求时启动 PHP 脚本的新实例,有没有办法让一个 PHP 脚本处理多个请求?

4

6 回答 6

2

PHP 是围绕“无共享”概念构建的,它使您能够通过分布式网络更好地进行负载平衡和扩展应用程序。所以“不”这是不可能的。如果您认为启动成本很高,那么可以调整架构以在概念上尽可能多地“缓存”您的对象/数据/视图。使用 serialize() 或其他东西。

于 2009-09-29T19:15:17.053 回答
1

如果您将该文件设置为 HTTP 服务器并将其作为进程运行,那么可以。

如果它通过 Apache 和 mod_php 运行,则不会。

(你到底为什么想要那个?)

于 2009-09-29T19:03:29.150 回答
1

还没有看到 http 请求的实现。我所能完成的就是等待所有请求返回。您可以通过分叉进程并将其发送到后台来在命令行中执行此操作。或者您可以为此使用Gearman(分布式工作)。

于 2009-09-29T19:04:25.237 回答
1

据我所知,没有办法做到这一点。我能想到的最接近的事情是使用像(xcache 或 APC)这样的 php 操作码缓存。这些将缓存代码以更快地执行脚本。我相信每个请求都会有自己的脚本实例。

于 2009-09-29T19:05:09.073 回答
1

你想要的是缓存数据。

您的 php 脚本应该简单地检查缓存中是否有请求的有效数据。如果没有,则读取数据库、更新缓存并将结果返回给用户。

我建议查看各种缓存库并仔细考虑如何扩展缓存。一个起点是 Zend_Cache,可能在后端使用 memcached。

于 2009-09-29T19:47:59.423 回答
0

处理 HTTP 请求的脚本可以使用套接字从一个小型 PHP 守护程序获取数据。

这是一个有用的 PHP 守护程序库:http: //github.com/kvz/system_daemon

还有一些文档:

http://kevin.vanzonneveld.net/techblog/article/create_daemons_in_php/

于 2009-10-21T12:32:06.350 回答