我有一个集成服务,它运行计算繁重的数据绑定过程。我想确保同时运行的这些进程不会超过 n = 5(但 n 将是可配置的,可在运行时更改)。这个想法是将服务器上的负载限制在安全水平。该方法处理的数据量受到批处理的限制,因此我不必担心一个进程代表比另一个更大的负载。
处理方法由另一个进程调用,其中运行工资单的请求保存在队列中,我可以在此时插入一些逻辑来确定是现在处理此请求,还是将其留在队列中。
所以我想要一个与处理方法在同一服务上的单独方法,它可以告诉我服务器是否可以接受对处理方法的另一个调用。它会问,“有多少工资单正在运行?这是否小于 n?” 实现这一目标的巧妙方法是什么?
- - - - - -编辑 - - - - - -
我想我需要说清楚,决定是否将请求从队列中取出的过程与通过 WCF 边界处理工资单数据的服务分开。停止工资单处理过程中的线程不会阻止更多请求进入