多个生产者多个消费者,但消费者应该连续执行

时间:2018-03-14 14:41:16

标签: c# task producer-consumer

我有一个案例,我们需要有多个生产者和多个消费者。 制片人&消费者应该在单独的任务上运行。

当我用谷歌搜索它时,我看到C#中有多个选项,如BlockingCollection,DataFlow,Queue等。

我在POC中尝试了所有这些,我看到的是那些不适合我的项目要求。

我的要求是生产者可以异步地旋转任务,但是消费者必须在那里连续处理作业,例如以下

Producer1 - 这应该轮询消息以进行处理并将其传递给消费者以下

 Consumer1
 Consumer2
 Consumer3

但是处理应该连续发生,即Consumer1应首先处理所有消息,然后处理consumer2和consumer3

Producer2

 Consumer1
 Consumer2
 Consumer3

同样应该与producer2一起发生。

我试过以下链接供我参考。 https://www.codeproject.com/Articles/1112510/TPL-Producer-Consumer-Pattern-Thread-Safe-Queue-Co

https://jeremydmiller.com/2016/08/09/building-a-producer-consumer-queue-with-tpl-dataflow/

http://www.dotnetcurry.com/patterns-practices/1407/producer-consumer-pattern-dotnet-csharp

0 个答案:

没有答案