提交 515028d0 编写于 作者: wu-sheng's avatar wu-sheng

1.增加发送副本的代码。保证副本至少发送两份。

上级 59f21b88
...@@ -84,7 +84,7 @@ public class DataSenderFactoryWithBalance { ...@@ -84,7 +84,7 @@ public class DataSenderFactoryWithBalance {
// 获取连接 // 获取连接
public static IDataSender getSender() { public static IDataSender getSender() {
DataSender readySender = null; DataSenderWithCopies readySender = new DataSenderWithCopies(maxKeepConnectingSenderSize);
while (true) { while (true) {
try { try {
if (usingDataSender.size() == 0) { if (usingDataSender.size() == 0) {
...@@ -98,7 +98,11 @@ public class DataSenderFactoryWithBalance { ...@@ -98,7 +98,11 @@ public class DataSenderFactoryWithBalance {
int index = ThreadLocalRandom.current().nextInt(0, int index = ThreadLocalRandom.current().nextInt(0,
usingDataSender.size()); usingDataSender.size());
if (usingDataSender.get(index).getStatus() == DataSender.SenderStatus.READY) { if (usingDataSender.get(index).getStatus() == DataSender.SenderStatus.READY) {
readySender = usingDataSender.get(index); while(readySender.append(usingDataSender.get(index))){
if(++index == usingDataSender.size()){
index = 0;
}
}
break; break;
} }
......
...@@ -34,7 +34,17 @@ public class DataSenderWithCopies implements IDataSender{ ...@@ -34,7 +34,17 @@ public class DataSenderWithCopies implements IDataSender{
* 尝试向所有副本发送 * 尝试向所有副本发送
*/ */
public boolean send(String data) { public boolean send(String data) {
return false; int successNum = 0;
for(IDataSender sender : senders){
if(sender.send(data)){
successNum++;
}
}
if(successNum >= 2){
return true;
}else{
return false;
}
} }
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册