我有一个运行Spring MVC的Web主机集群,我希望将它们用于运行一些长时间运行的后台任务(网络和CPU密集型)。任务是通过Web端点(即Web方面)提交给他们的。此类接口还使请求者可以在一次提交多个任务时在主机之间分配任务(或者也可以使用专用的负载均衡器,从而省去了实现另一种负载分配机制的精力)
请求速率较低(<1 rps),但是当请求进入时,接受或拒绝请求(响应请求者)的优先级高于该主机正在处理的任何后台任务。接受或拒绝请求的决定不会占用大量资源。由于主机死亡或其他原因,有单独的机制可以重新生成可能丢失的任务。
我担心的是,如果主机忙于后台任务,则它可能不会及时响应Web请求。是否可以在Spring MVC或基础Servlet容器中配置线程优先级?关于计算请求线程应比后台进程线程具有更多优先级的任何建议?还是这种方法有一些我可能会忽略的缺陷?
谢谢!