我正在开发一个 OLAP 应用程序、WCF + Silverlight 客户端(最多 100 个并发用户)。不幸的是,一个特定的服务调用有时会发疯(尽管它完全有效,只是太复杂了)并且偶尔(每月一次)会导致整个服务器停机(通过消耗所有 CPU)。
解决方案将涉及杀死用户请求甚至整个用户会话,从业务角度来看,这对我们来说没什么大不了的 - 恢复/重新启动整个应用程序是。
将用户会话隔离到单独的进程中的想法非常诱人:CPU/内存节流和干净的资源处理(不像 Thread.Abort)——如果现代浏览器可以仅针对网页执行此操作,那么也许是时候在服务器上执行此操作了。我们只是想评估这个概念并在我们的特定场景中查看利弊。
因此,问题:
- 是否已经有一个现有的库/框架可用于管理进程(如预生成/重用进程、限制、超时后终止)?
- 是否有任何“最佳实践”或指南来创建这样的架构?