我试图了解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
到底意味着什么?
如果我使用我的应用程序,例如,作为聊天,使用服务器推送刷新内容,如果我同时运行多个进程,我不会遇到问题吗? (因为不同的客户可以连接到不同的进程)。
答案 0 :(得分:1)
当Wt应用程序在具有FastCGI连接器的Apache下工作时,首先启动Wt FastCGI调度过程。该进程从Web服务器接收FastCGI请求,并将它们转发给实际执行应用程序作业的工作进程。工作进程数由shared-process
选项控制。它被称为共享,因为活动Wt会话的数量最终可能超过工作进程的数量。在这种情况下,调度过程会尝试将新的Wt会话均匀分配给工作进程。
与shared-process
选项不同,当您使用dedicated-process
时,将为每个新的Wt会话启动新的工作进程。
WServer::post
或WServer::postAll
发送的推送事件将仅发送到当前流程中的Wt会话。如果要在所有进程中向所有Wt会话发布事件,则应实现一些自定义进程间通信机制。