【发布时间】:2012-05-22 06:05:49
【问题描述】:
所以,我构建了这个 ZeroMQ 管道架构的小例子,因为我很快就不得不做类似的事情,并且我正试图以正确的方式掌握管道概念。
https://gist.github.com/2765708
现在,这是完全异步的。控制器将一批任务分派给各个工作人员,这些工作人员依次向接收器发送消息。控制器和接收器是我架构的固定部分,而工作人员是动态的。那很完美。
但是,我想知道工人何时完成所有任务。在那个例子中,我确实知道消息的数量,但在现实生活中情况并非如此。我可能有 100 条消息或 10,000 条消息。那么,接收器或控制器如何知道工人何时完成了他们的任务呢?我必须执行一些操作,这些操作取决于发送给工人的工作的结论。
【问题讨论】:
-
这就是信号量的好处。它需要是一个分布式信号量,但“A”将增加信号量,“B”将减少它。如果信号量计数超过 X,则“A”会等到它小于 X 时才发布更多作业。当然'A'不必等待,它可以用来知道还有多少任务需要完成。如果您使用水槽,这将解决您的问题。
标签: queue message-queue zeromq