事件队列在队列中按先入先出的顺序存储一系列通知或请求。 发送通知时,将请求放入队列并返回。 处理请求的系统之后稍晚从队列中获取请求并处理。 这解耦了发送者和接收者,既静态又及时。
- 制定消息类型,内容格式
- 创建消息队列
- 添加监听事件
- 传递事件
- 激活对应方法
优点
- 解耦发送者和接收者
缺点
-
我在之前提到了几次,很大程度上, 这个模式是广为人知的观察者模式的异步实现。
-
就像其他很多模式一样,事件队列有很多别名。 其中一个是“消息队列”。这通常指代一个更高层次的实现。 事件队列在应用中,消息队列通常在应用间交流。
另一个术语是“发布/提交”,有时被缩写为“pubsub”。 就像“消息队列”一样,这通常指代更大的分布式系统,而不是现在关注的这个模式。
-
很像GoF的状态模式,需要一个输入流。如果想要异步响应,可以考虑用队列存储它们。
当你有一对状态机相互发送消息时,每个状态机都有一个小小的未处理队列(被称为一个信箱), 然后你需要重新发明actor model。