事件队列

事件队列解耦发出消息或事件的时间和处理它的时间。在队列中按先入先出的顺序存储一系列通知或请求,发送通知时,将请求放入队列并返回,处理请求的系统之后稍晚从队列中获取请求并处理,解耦发送者和接收者。


如果你只是想解耦接收者和发送者,可以使用观察者模式和命令模式,但解耦某些需要及时处理的东西时需要使用队列。队列将控制权从发送者那里拿走,接收者可以延迟处理,合并或忽视请求,当发送者需要回复时,队列不是好选择。


需要注意不要陷于反馈系统环路中,避免在处理事件的代码中发送事件。队列需要可以在处理完一个请求后再从缓存中再拉取一个请求的能力。


关于队列的数据结构,为了充分利用缓存,使用经典的数组即可。最好使用环形缓存,该结构可以从数组的前方移除东西,而不需要将所有剩下的部分都移动一次。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值