误用BlockingQueue方法导致日志丢失
一、背景
最近研发反映线上EDI的日志有丢失现象,经过审查代码发现,本机使用的BlockingQueue方法有误,使用的BlockingQueue#add
方法,此时当队列满时会插入失败,返回false。
二、修改方案
方案一、修改BlockingQueue#add
为BlockingQueue#put
;
方案二、判断BlockingQueue#add
返回值为false时,增加重试或写本地方案;
三、BlockingQueue注释
1 | public interface BlockingQueue<E> extends Queue<E> { |