0

考虑一个有多个消费者的作业队列,我想用C#编写一个应用程序,它一次取出一个作业并执行它。队列驻留在单独的服务器上,我可能必须运行我的应用程序的多个实例以保持队列按时提供服务。

我相信最好的做法是Task.Run确保使用消费者 CPU 的最大功率。在这个实现中,主线程正在轮询队列,一旦有作业可用,它就会出队,然后使用Task.Run.

我担心的是,由于一旦消费者出队一项工作,它就超出了其他消费者的能力范围,是否有可能消费者在其他人空闲时接受了太多工作,从某种意义上说,如果工作分配不同(更多均匀地)他们会更快地完成吗?我是否需要担心这种情况?

如果我的担忧是真实的,那么我该如何在 C# 中控制它?

4

0 回答 0