提交 0935d78f 编写于 作者: wu-sheng's avatar wu-sheng

1.修复调用链模式的BUG

上级 9f6d7678
package com.ai.cloud.skywalking.reciever.storage;
import java.util.ArrayList;
import java.util.List;
import com.ai.cloud.skywalking.reciever.model.BuriedPointEntry;
public class Chain {
private List<IStorageChain> chains = new ArrayList<IStorageChain>();
private List<IStorageChain> chains;
private int index = 0;
public Chain(List<IStorageChain> chains){
this.chains = chains;
}
public void doChain(BuriedPointEntry entry, String entryOriginData ){
if(index < chains.size()){
chains.get(index++).doChain(entry, entryOriginData, this);;
}
}
synchronized void addChain(IStorageChain chain){
void addChain(IStorageChain chain){
chains.add(chain);
}
}
package com.ai.cloud.skywalking.reciever.storage;
import java.util.ArrayList;
import java.util.List;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
......@@ -10,10 +13,10 @@ public class StorageChainController {
private static Logger logger = LogManager
.getLogger(StorageChainController.class);
private static Chain globalChain = new Chain();
private static List<IStorageChain> chainArray = new ArrayList<IStorageChain>();
static{
globalChain.addChain(new SaveToHBaseChain());
chainArray.add(new SaveToHBaseChain());
}
public static void doStorage(String buriedPointDatas) {
......@@ -27,7 +30,8 @@ public class StorageChainController {
continue;
}
BuriedPointEntry entry = BuriedPointEntry.convert(buriedPoint);
globalChain.doChain(entry, buriedPoint);
Chain chain = new Chain(chainArray);
chain.doChain(entry, buriedPoint);
} catch (Throwable e) {
logger.error("ready to save buriedPoint error, choose to ignore. data="
+ buriedPoint, e);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册