这是我的问题:我有一个C ++应用程序,它包含Qt GUI和相当多的后端代码。目前,它链接到一个可执行文件并在Solaris上运行。现在,我想在Windows上运行GUI,并在Solaris上运行其余的代码(移植它将是一项巨大的努力)。 GUI和后端之间的接口非常干净,由一个C ++抽象类(也使用一些stl容器)组成。这是我想转变为webservice的部分。
问题是我们的后端代码不是线程安全的,因此我需要在Solaris上为Windows上的每个GUI运行一个单独的进程。但是,出于性能原因,我无法从GUI的每个请求开始和完成处理。
这种设计意味着我需要处理好几个问题:
您能否推荐一个能够处理这些细节的框架(消息路由/调度和生命周期管理)?
答案 0 :(得分:1)
您可以在技术上配置Apache httpd以为每个连接生成一个新实例。该配置还允许您管理进程在空闲时保持活动的时间,以及至少有多少进程保持运行。只要Web服务是无状态的,这就可以正常工作。有点奇怪,但技术上可行。
如果你使用像gSoap这样的东西,你可以将Solaris中的C ++类直接编译成gSoap mod,而不必将它改编为任何前端,如PHP或Java。它只会插入Apache httpd并开始工作。
编辑:
我只是考虑过它,你可能也可以使用HTTP 1.1 keep-alives来管理流程的生命周期。 Apache允许您配置保持活动状态保持打开的时间,从而使连接的线程/进程保持活动状态。