Wt(机智)+ Apache + Fastcgi
Posted
技术标签:
【中文标题】Wt(机智)+ Apache + Fastcgi【英文标题】:Wt (Witty) + Apache + Fastcgi 【发布时间】:2015-12-22 04:27:02 【问题描述】:我试图了解 Wt 在通过 fastcgi 连接器和 apache 将会话作为动态 fastcgi 脚本使用时如何管理会话。我的wt_config.xml
是默认的。我什么都没做,所以,当前关于进程和线程管理的 Wt 选项是默认选项:
<server>
<application-settings location="*">
<session-management>
<!--
<dedicated-process>
<max-num-sessions>100</max-num-sessions>
</dedicated-process>
-->
<shared-process>
<num-processes>1</num-processes>
</shared-process>
// Others....
</session-management>
<connector-fcgi>
<num-threads>1</num-threads>
// Others....
</connector-fcgi>
// Others...
</application-settings>
</server>
有了这样的配置,我会有多少进程?所有课程都只有一个?还是每个新会话只使用一个? shared-process
到底是什么意思?
如果我将我的应用程序用作聊天,使用服务器推送来刷新内容,如果我同时运行多个进程,我会不会遇到问题? (因为不同的客户端可以连接到不同的进程)。
【问题讨论】:
【参考方案1】:当 Wt 应用程序在带有 FastCGI 连接器的 Apache 下运行时,首先启动 Wt FastCGI 调度进程。该进程从 Web 服务器接收 FastCGI 请求并将它们转发到实际执行您的应用程序工作的工作进程。工作进程的数量由shared-process
选项控制。之所以称为共享,是因为活动 Wt 会话的数量最终可能会超过工作进程的数量。在这种情况下,调度进程会尝试将新的 Wt 会话平均分配给工作进程。
与shared-process
选项不同,当您使用dedicated-process
时,将为每个新的 Wt 会话启动一个新的工作进程。
WServer::post
或WServer::postAll
发送的推送事件将仅传递给当前进程中的 Wt 会话。如果你想在所有进程中向所有 Wt 会话发布事件,你应该实现一些自定义的进程间通信机制。
我在这里讨论过:http://redmine.webtoolkit.eu/issues/2897
【讨论】:
以上是关于Wt(机智)+ Apache + Fastcgi的主要内容,如果未能解决你的问题,请参考以下文章