package com.alibaba.doris.dataserver.extratools.replica.action;
import com.alibaba.doris.dataserver.ApplicationContext;
import com.alibaba.doris.dataserver.action.Action;
import com.alibaba.doris.dataserver.config.ModuleConstances;
import com.alibaba.doris.dataserver.core.Request;
import com.alibaba.doris.dataserver.core.Response;
import com.alibaba.doris.dataserver.extratools.replica.ReplicaTool;
import com.alibaba.doris.dataserver.store.Storage;
import com.alibaba.doris.dataserver.store.StorageModule;
/**
* @author ajun Email:jack.yuj@alibaba-inc.com
*/
public class ExportAction implements Action {
public void execute(Request request, Response response) {
ExportActionData actionData = (ExportActionData) request.getActionData();
Storage storage = getStorage(request);
long start = System.currentTimeMillis();
int num = replicaTool.exportData(storage, actionData);
long end = System.currentTimeMillis();
actionData.setMessage("Processing [" + num + "] records! Time(ms):[" + (end - start) + "]");
response.write(actionData);
}
protected Storage getStorage(Request request) {
if (null == storageModule) {
ApplicationContext appContext = request.getApplicationContext();
storageModule = (StorageModule) appContext.getModuleByName(ModuleConstances.STORAGE_MODULE);
}
return storageModule.getStorage();
}
private StorageModule storageModule;
protected ReplicaTool replicaTool = new ReplicaTool();
}