是否有任何“干净”的方法来设置在对WCF服务的同步调用上执行请求的线程的优先级?我知道这句话
Thread.CurrentThread.Priority
但也许这是一个更好的解决方案。
上下文:
我们在WCF应用程序上有我们的业务层,它参与两种调用,一方面来自ASPNET MVC应用程序(同一服务器上的Web前端),另一方面来自各种控制台应用程序。在多个线程上执行一些不交互的批处理过程,从而提高了前端CPU使用率,降低了前端请求(浏览器上的用户)的性能。
我们知道我们可以更改arquitechture以在两台或更多台服务器上分离服务器,并且在一些客户上我们已经做了类似的事情(分离正面和背面,多台服务器,平衡器),但在小客户中,批处理进程仅在很短的时间内执行,并且(通过预算)为该峰值设置另一台机器或另一个iis应用程序(共享服务器)是不合理的。批处理过程执行更好的性能(尽可能使用100%CPU)非常重要,但Web前端必须始终是优先级。
- 更新22/02/2018 -
我知道帖子Changing thread priority on WCF RIA Service是一个解决方案,我会在问题的开头指出它,但我想知道是否有人可以指导我找到更好的解决方案,我已经开发了那个。