ES 批量bulk 备忘

来源:互联网 发布:航海家软件准不准? 编辑:程序博客网 时间:2024/05/16 18:50
public void bulkSaveLogStr(List<String> list){

BulkRequestBuilder bulkRequest = esutil.getClients().prepareBulk(); 
Long start = System.currentTimeMillis();

for (String str :list ){
bulkRequest.add(esutil.getClients().prepareIndex(index, type) .setSource(str));  
}


BulkResponse bulkResponse = bulkRequest.execute().actionGet();
  if (bulkResponse.hasFailures()) {
            Iterator<BulkItemResponse> iter = bulkResponse.iterator();
            while (iter.hasNext()) {
                BulkItemResponse itemResponse = iter.next();
                if (itemResponse.isFailed()) {
                logger.info(itemResponse.getFailureMessage());
                }
            }
        }
  Long end = System.currentTimeMillis();
  
  logger.info("bulk request time ="+(end-start)+"毫秒");
  Date d = new Date();
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  
  logger.info(sdf.format(d)+"commit size="+list.size()  );

}

参数list中String为json格式。从jedis中批量获取得到。

另附jedis批量

public List<String> pipeLineGet(){
Long start = System.currentTimeMillis();
List<String> returnlist = new ArrayList<String>();
Pipeline p =jedis.pipelined();
List<Response<String>> lres = new ArrayList<Response<String>>();
for (int i= 0 ; i<pipecount; i++){
Response<String> responses =p.rpop(quenename);
lres .add(responses);
}
p.sync();



for (Response<String> resp :lres){
String str = resp.get();
if (str!=null){
System.out.println(str);
returnlist.add(str);
}
}
Long end = System.currentTimeMillis();
if (returnlist!=null && returnlist.size()>0){
logger.info(returnlist.size() +"  count : pipe line  time ="+(end-start)+"毫秒");
}else{
System.out.println("无数据");
}
return returnlist;
}

0 0
原创粉丝点击