golang调度员使用地图和频道

时间:2017-03-15 22:35:23

标签: design-patterns go dispatcher goroutine

我尝试在并发情况下使用go设计调度程序,调度程序需要将消息发送给专用工作者,该工作者只处理一种消息(或工作者),例如:

  • 工作人员类型A仅处理消息类型A
  • 工人类型B仅处理消息类型B
  • 等,

因为我可以动态添加/删除处理不同类型消息的专用工作者。现在我需要一个消息模式,只使用goroutine和channel。我打算有一个频道 - 一个相同类型的工作池,并将频道放在地图中,所以我可以根据地图中的键按类型分发消息,如果处理消息C的工作人员不存在,它将会只是将消息发送到垃圾信道进行非处理,同一类型的工作者可以同时处理相同类型的消息。我不确定它是否是更好的设计,有什么建议吗?

提前谢谢。

0 个答案:

没有答案