首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同一个PHP脚本的实例可以交叉通信吗?

同一个PHP脚本的实例可以交叉通信吗?
EN

Stack Overflow用户
提问于 2009-09-16 01:07:46
回答 4查看 1.9K关注 0票数 1

我假设对于每个页面请求,for服务器(例如,Apache)在内存中创建脚本的新实例。这些实例在运行时可以相互通信吗?并传递数据吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-09-16 01:13:50

如果您想在PHP中的脚本之间传递数据,我建议使用memcached或数据库。或者可能是APC。

如果脚本属于同一个会话,理论上它们可以通过会话进行通信,但这在大多数情况下是有效的单向通信,因为在任何时候都只有一个脚本可以访问会话(session_start()锁定会话,直到该脚本隐式或显式地结束会话)。

票数 3
EN

Stack Overflow用户

发布于 2009-09-16 02:34:37

我相信Martin和Cletus的建议是正确的。我的选择将是脚本最终目标的函数。

  • 您将丢弃多少数据?你能处理外部进程的开销吗?
  • 你交换的是什么类型的数据?它被规范化了吗?或者,现在是否值得normalizing?
  • Will您以后需要参考这些数据?或者,是否可以在锁定那些在不同服务器上运行的脚本后将其丢弃? processed?
  • Will mechanism
  • Relational DB
  • Document DB (键/值存储,无论是否持久)
  • Shared memory (APC,或核心functions)
  • Message队列(活动MQ和公司)
  • )

我认为通过将流程外部化可以获得最大的价值,因为您可以让多台机器管理消息/数据,也可以让多台机器生产/使用它们。

票数 2
EN

Stack Overflow用户

发布于 2009-09-16 01:14:55

PHP脚本运行所基于的模型实际上并不包含在内存中为这些脚本提供任何形式的持久性的概念,因为它们通常被设计为只在为请求的页面提供服务所需的最短时间内运行。这将使得这些脚本之间的有状态通信很难有任何有意义的用途,因为通常情况下,一旦提供了页面,脚本就没有更多的事情可做了。因此,通常PHP脚本之间的任何通信都是通过操作数据库条目等来完成的。

如果您需要进行某种持续的处理,并且希望传递数据,则可能需要考虑其他web应用程序模型,如servlets。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1430417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档