48 lines
1.1 KiB
Java
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);
|
|
}
|
|
}
|