Files
msgexchange-api/src/main/java/com/gzzn/omms/msgexchangeapi/service/FltrSendBufferService.java
T

48 lines
1.1 KiB
Java

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<SCHD.FLTR> fltrBuffer = new ConcurrentLinkedQueue<SCHD.FLTR>();
@Override
public void addFltr(SCHD.FLTR fltr) {
synchronized (fltrBuffer) {
fltrBuffer.add(fltr);
}
}
@Override
public List<FLTR> 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);
}
}