Wt(Witty)+ Apache + Fastcgi

时间:2015-12-22 04:27:03

标签: multithreading apache fastcgi wt

我试图了解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 个答案:

答案 0 :(得分:1)

当Wt应用程序在具有FastCGI连接器的Apache下工作时,首先启动Wt FastCGI调度过程。该进程从Web服务器接收FastCGI请求,并将它们转发给实际执行应用程序作业的工作进程。工作进程数由shared-process选项控制。它被称为共享,因为活动Wt会话的数量最终可能超过工作进程的数量。在这种情况下,调度过程会尝试将新的Wt会话均匀分配给工作进程。

shared-process选项不同,当您使用dedicated-process时,将为每个新的Wt会话启动新的工作进程。

WServer::postWServer::postAll发送的推送事件将仅发送到当前流程中的Wt会话。如果要在所有进程中向所有Wt会话发布事件,则应实现一些自定义进程间通信机制。

我在这里讨论过:http://redmine.webtoolkit.eu/issues/2897