【问题标题】:PHP web-app deamon handling multiple requests in a row from the same userPHP web-app 守护进程连续处理来自同一用户的多个请求
【发布时间】:2011-08-27 14:32:46
【问题描述】:

我正在开发一个网络应用程序,我需要让主脚本在后台运行(作为一个守护进程)并处理来自同一用户的许多请求。

我的应用程序执行许多 SQL 查询并为其内部工作生成巨大的数组, 这是针对用户的每个请求完成的。我的目标是让应用程序在后台运行并让它响应用户请求,从而提高性能并减少服务器资源;一旦用户注销,我就可以杀死守护进程。

我曾想过使用 pcntl_fork() 但它只适用于 CLI(如果我的理解正确的话)

任何帮助将不胜感激!谢谢。

尤尼斯。

【问题讨论】:

  • 那么每个网络请求都会在生成响应之前等待来自守护进程的信息?还是 SQL 查询是异步执行的?
  • NanoWebphpstackNanoserv 等。我最初寻找的那个我没有找到想法。它遵循在 PHP 中有 HTTP 守护程序的原则,以便将所有对象持久化在内存中。比 APC 和类似的 PHP 缓存快得多。适用于所有具有良好 HTTP 抽象的东西,如 symfony2,如果有的话,请注意单例。

标签: php fork apache web-applications


【解决方案1】:

您可以尝试在访问之间将巨大的数组存储在会话变量或内存缓存中。这取决于它们有多“巨大”。

虽然我不得不运行一个 CLI php“守护程序”来侦听特定端口,但“常规”(CGI?)php 脚本将通过端口 I/O 进行通信。看起来很复杂,因此很脆弱。

【讨论】:

  • 在会话中存储数据是一种解决方案,但它增加了提前思考并确定要存储什么以及下一次会话可以修改什么的负担,而我的想法是保持应用程序的状态不变会话之间,就像在桌面应用程序中一样。
猜你喜欢
  • 2011-12-29
  • 1970-01-01
  • 2017-07-04
  • 1970-01-01
  • 2023-03-10
  • 2011-05-03
  • 1970-01-01
  • 1970-01-01
  • 2013-04-20
相关资源
最近更新 更多