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

This commit is contained in:
wusheng 2015-12-22 10:29:06 +08:00
parent 59f21b8879
commit 515028d0a7
2 changed files with 17 additions and 3 deletions

View File

@ -84,7 +84,7 @@ public class DataSenderFactoryWithBalance {
// 获取连接
public static IDataSender getSender() {
DataSender readySender = null;
DataSenderWithCopies readySender = new DataSenderWithCopies(maxKeepConnectingSenderSize);
while (true) {
try {
if (usingDataSender.size() == 0) {
@ -98,7 +98,11 @@ public class DataSenderFactoryWithBalance {
int index = ThreadLocalRandom.current().nextInt(0,
usingDataSender.size());
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;
}

View File

@ -34,7 +34,17 @@ public class DataSenderWithCopies implements IDataSender{
* 尝试向所有副本发送
*/
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;
}
}
}