一年CRUD
经验用十年的markdown
程序员👨🏻💻常年被誉为职业八股文选手
前阵子,有个小伙伴找到问我,如果要实现延时发送,那是基于什么来做的。
对于前端而言,只要让业务方在创建模板的时候填选屏蔽类型,后端根据这个字段增添一点点细节,这个需求就做完了,简单!
延迟消息如何实现?
延迟消息就是字面上的意思:当接收到消息之后,我需要隔一段时间进行处理(相对于立马处理,它隔了一段时间,所以他叫延迟消息)。
在原生的Java有DelayQueue
供我们去使用,在使用的时候,我们add
进去的队列的元素需要实现Delayed
接口(同时该接口继承了Comparable
接口,所以我们DelayQueue
是有序的)
public interface Delayed extends Comparable<Delayed> {
long getDelay(TimeUnit unit);
}
从poll
的源码上可以清晰地发现本质上就是在取数的时候判断了下时间