package com.gzzn.omms.msgexchangeapi.service; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.concurrent.ConcurrentLinkedQueue; import org.springframework.stereotype.Service; import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD; import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD.FLTR; /** * 要发到kafka 的航班动态信息,先在这里做缓存。 * @author zhouxiunai * */ @Service("msgbufferservice") public class FltrSendBufferService implements IFltrSendBufferService { private static ConcurrentLinkedQueue fltrBuffer = new ConcurrentLinkedQueue(); @Override public void addFltr(SCHD.FLTR fltr) { synchronized (fltrBuffer) { fltrBuffer.add(fltr); } } @Override public List takeAllFltr() { if(fltrBuffer.size() <= 0) { return Collections.emptyList(); } // FLTR[] fltrs = null; synchronized (fltrBuffer) { fltrs = (FLTR[]) fltrBuffer.toArray(new FLTR[fltrBuffer.size()]); fltrBuffer.clear(); } return Arrays.asList(fltrs); } }