/** * */ package com.alibaba.doris.client.tools.datamaker; import com.alibaba.doris.client.net.Connection; import com.alibaba.doris.client.tools.concurrent.ParralelTaskImpl; import com.alibaba.doris.common.data.Key; import com.alibaba.doris.common.data.Value; import com.alibaba.doris.common.data.impl.KeyImpl; import com.alibaba.doris.common.data.impl.ValueImpl; import com.alibaba.doris.common.route.VirtualRouter; /** * @author raymond * */ public class NodePutTask extends ParralelTaskImpl { private Connection connection; private VirtualRouter virtualRouter ; private String kp; private String vp; private String operation; public NodePutTask() { } public VirtualRouter getVirtualRouter() { return virtualRouter; } public void setVirtualRouter(VirtualRouter virtualRouter) { this.virtualRouter = virtualRouter; } public void setConnection(Connection connection) { this.connection = connection; } public String getKp() { return kp; } public void setKp(String kp) { this.kp = kp; } public String getVp() { return vp; } public void setVp(String vp) { this.vp = vp; } public Connection getConnection() { return connection; } public void setOperation(String operation) { this.operation = operation; } public String getOperation() { return operation; } @Override public void doRun(long index) { String key = kp; int vnode = virtualRouter.findVirtualNode(key); int commaIndex = key.indexOf(":"); if( commaIndex == -1) { throw new IllegalArgumentException("Invalid kp parameter: " + kp + ", Format 101:abc"); } String ns = key.substring(0, commaIndex); String logicKey = key.substring(commaIndex + 1); int namespaceId = Integer.valueOf(ns); logicKey = logicKey + index; Key key1 = new KeyImpl(namespaceId, logicKey, vnode ); String value = vp + index; Value value1 = new ValueImpl(value.getBytes(), System.currentTimeMillis()); try { if( "get".equals( operation )) { connection.get(key1).get(); }else if ("put".equals( operation)) { connection.put(key1, value1).get(); }else if ("delete".equals( operation )) { connection.delete(key1).get(); }else { //get connection.get(key1).get(); } } catch (Exception e) { e.printStackTrace(); } } }