Fix:#41 增加异常处理,Chain的节点异常时,将会重做,保证服务端的数据不丢失

This commit is contained in:
ascrutae 2016-04-07 20:09:48 +08:00
parent 8baae7c606
commit d051f231dc
1 changed files with 7 additions and 6 deletions

View File

@ -3,16 +3,15 @@ package com.ai.cloud.skywalking.reciever.storage;
import com.ai.cloud.skywalking.protocol.Span;
import com.ai.cloud.skywalking.reciever.selfexamination.ServerHealthCollector;
import com.ai.cloud.skywalking.reciever.selfexamination.ServerHeathReading;
import java.util.List;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.util.List;
public class Chain {
private static Logger logger = LogManager
private static Logger logger = LogManager
.getLogger(Chain.class);
private List<IStorageChain> chains;
private int index = 0;
@ -28,9 +27,11 @@ public class Chain {
chains.get(index++).doChain(spans, this);
break;
} catch (Throwable e) {
logger.error("do chain at index[{}] failure.", index, e);
logger.error("do chain at index[{}] failure.", index, e);
ServerHealthCollector.getCurrentHeathReading("storage-chain").updateData(ServerHeathReading.ERROR,
"Failed to do chain action. spans list hash code:" + spans.hashCode() + ",Cause:" + e.getMessage());
// 如果Chain出现任何异常将重做Chain,保证数据不丢失
index--;
}
}
}