重构航班缓存发送代码
This commit is contained in:
+2
-22
@@ -11,24 +11,19 @@ import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD.FLTR;
|
||||
|
||||
/**
|
||||
* 要发到kafka 的消息,先在这里做缓存。
|
||||
* 要发到kafka 的航班动态信息,先在这里做缓存。
|
||||
* @author zhouxiunai
|
||||
*
|
||||
*/
|
||||
@Service("msgbufferservice")
|
||||
public class MsgBufferService implements IMsgBufferService {
|
||||
public class FltrSendBufferService implements IFltrSendBufferService {
|
||||
private static ConcurrentLinkedQueue<SCHD.FLTR> fltrBuffer = new ConcurrentLinkedQueue<SCHD.FLTR>();
|
||||
private static ConcurrentLinkedQueue<String> msgBuffer = new ConcurrentLinkedQueue<String>();
|
||||
|
||||
@Override
|
||||
public void addFltr(SCHD.FLTR fltr) {
|
||||
fltrBuffer.add(fltr);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addMsg(String msg) {
|
||||
msgBuffer.add(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FLTR> takeAllFltr() {
|
||||
@@ -43,19 +38,4 @@ public class MsgBufferService implements IMsgBufferService {
|
||||
|
||||
return Arrays.asList(fltrs);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> takeAllMsg() {
|
||||
if(msgBuffer.size() <= 0)
|
||||
{
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
//
|
||||
String[] msgs = (String[]) msgBuffer.toArray();
|
||||
msgBuffer.clear();//to fix ,获取及清空过程中是否要加锁
|
||||
|
||||
return Arrays.asList(msgs);
|
||||
}
|
||||
|
||||
}
|
||||
+2
-15
@@ -5,34 +5,21 @@ import java.util.List;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD;
|
||||
|
||||
/**
|
||||
* 消息缓存服务,多线程安全
|
||||
* 航班信息发送缓存服务,多线程安全
|
||||
* @author zhouxiunai
|
||||
*
|
||||
*/
|
||||
public interface IMsgBufferService {
|
||||
public interface IFltrSendBufferService {
|
||||
/**
|
||||
* 添加动态航班信息到缓存
|
||||
* @param fltr
|
||||
*/
|
||||
public void addFltr(SCHD.FLTR fltr);
|
||||
|
||||
/**
|
||||
* 添加动态消息到缓存
|
||||
* @param msg (json 格式)
|
||||
*/
|
||||
public void addMsg(String msg);
|
||||
|
||||
|
||||
/**
|
||||
* 获取缓存中所有的动态航班信息
|
||||
* @return
|
||||
*/
|
||||
public List<SCHD.FLTR> takeAllFltr();
|
||||
|
||||
|
||||
/**
|
||||
* 获取缓存中的所有动态消息
|
||||
* @return
|
||||
*/
|
||||
public List<String> takeAllMsg();
|
||||
}
|
||||
Reference in New Issue
Block a user