Commit f6fa7644 by liuyu

2023年04月28 pair优化

parent e61f13b9
package com.zhiwei.middleware.automatic.son.task;
import com.zhiwei.middleware.automatic.server.pojo.enums.TaskType;
import org.apache.commons.lang3.tuple.Pair;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
public class BaseTaskTypePair<T> {
private final Map<String, Pair<TaskType, T>> TYPE_MAP = new HashMap<>();
public void taskCache(TaskType taskType, T t) {
TYPE_MAP.put(taskType.getType(), Pair.of(taskType, t));
}
public TaskType getPairKey(String type) {
Pair<TaskType, T> taskTypeTPair = TYPE_MAP.get(type);
return Objects.isNull(taskTypeTPair) ? null : taskTypeTPair.getKey();
}
public Pair<TaskType, T> getPair(String type) {
return TYPE_MAP.get(type);
}
public T getPairValue(String type) {
return TYPE_MAP.get(type).getValue();
}
}
...@@ -14,6 +14,7 @@ import com.zhiwei.middleware.automatic.son.dao.TemplateRecordDao; ...@@ -14,6 +14,7 @@ import com.zhiwei.middleware.automatic.son.dao.TemplateRecordDao;
import com.zhiwei.middleware.automatic.son.dao.TemplateTempRecord; import com.zhiwei.middleware.automatic.son.dao.TemplateTempRecord;
import com.zhiwei.middleware.automatic.son.dubbo.DubboHandler; import com.zhiwei.middleware.automatic.son.dubbo.DubboHandler;
import com.zhiwei.middleware.automatic.son.service.TemplateTitleService; import com.zhiwei.middleware.automatic.son.service.TemplateTitleService;
import com.zhiwei.middleware.automatic.son.task.BaseTaskTypePair;
import com.zhiwei.middleware.automatic.son.util.CosineSimilarity; import com.zhiwei.middleware.automatic.son.util.CosineSimilarity;
import com.zhiwei.middleware.automatic.son.util.MarkInfoUtil; import com.zhiwei.middleware.automatic.son.util.MarkInfoUtil;
import com.zhiwei.middleware.automatic.son.util.RedissonUtil; import com.zhiwei.middleware.automatic.son.util.RedissonUtil;
...@@ -29,12 +30,10 @@ import java.util.concurrent.CompletableFuture; ...@@ -29,12 +30,10 @@ import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service("TaskServiceCommon") @Service("TaskServiceCommon")
public class TaskServiceCommon implements TaskService { public class TaskServiceCommon extends BaseTaskTypePair<TaskServiceCommon.TaskCommonFunctional> implements TaskService {
private static final Logger log = LogManager.getLogger(TaskServiceCommon.class); private static final Logger log = LogManager.getLogger(TaskServiceCommon.class);
private static final Map<String, Pair<TaskType, TaskCommonFunctional>> TYPE_MAP = new HashMap<>();
private final RedissonUtil redissonUtil; private final RedissonUtil redissonUtil;
private final TemplateTitleService templateTitleService; private final TemplateTitleService templateTitleService;
...@@ -56,19 +55,18 @@ public class TaskServiceCommon implements TaskService { ...@@ -56,19 +55,18 @@ public class TaskServiceCommon implements TaskService {
this.dubboHandler = dubboHandler; this.dubboHandler = dubboHandler;
this.templateRecordDao = templateRecordDao; this.templateRecordDao = templateRecordDao;
this.autoMarkExecutor = autoMarkExecutor; this.autoMarkExecutor = autoMarkExecutor;
TYPE_MAP.put(TaskType.COMMON_TWO.getType(), Pair.of(TaskType.COMMON_TWO, this::getMultiAutoInfo)); taskCache(TaskType.COMMON_TWO, this::getMultiAutoInfo);
TYPE_MAP.put(TaskType.COMMON_ONE.getType(), Pair.of(TaskType.COMMON_ONE, this::getOneAutoInfo)); taskCache(TaskType.COMMON_ONE, this::getOneAutoInfo);
} }
@Override @Override
public TaskType supports(String type) { public TaskType supports(String type) {
Pair<TaskType, TaskCommonFunctional> pair = TYPE_MAP.get(type); return getPairKey(type);
return Objects.isNull(pair) ? null : pair.getKey();
} }
@Override @Override
public void runTask(AutoTask autoTask) { public void runTask(AutoTask autoTask) {
Pair<TaskType, TaskCommonFunctional> pair = Objects.requireNonNull(TYPE_MAP.get(autoTask.getType())); Pair<TaskType, TaskCommonFunctional> pair = getPair(autoTask.getType());
Map<String, List<MarkInfo>> dataSourceInfo = pair.getValue().getDataSource(autoTask.getParamSource().getString(pair.getKey().getCacheId())); Map<String, List<MarkInfo>> dataSourceInfo = pair.getValue().getDataSource(autoTask.getParamSource().getString(pair.getKey().getCacheId()));
if (dataSourceInfo.isEmpty()) { if (dataSourceInfo.isEmpty()) {
log.error("本地任务可用数据为空,taskType:{}", autoTask.getType()); log.error("本地任务可用数据为空,taskType:{}", autoTask.getType());
......
...@@ -12,6 +12,7 @@ import com.zhiwei.middleware.automatic.server.pojo.enums.TemplateStatus; ...@@ -12,6 +12,7 @@ import com.zhiwei.middleware.automatic.server.pojo.enums.TemplateStatus;
import com.zhiwei.middleware.automatic.son.dao.EsDao; import com.zhiwei.middleware.automatic.son.dao.EsDao;
import com.zhiwei.middleware.automatic.son.dao.TemplateRecordDao; import com.zhiwei.middleware.automatic.son.dao.TemplateRecordDao;
import com.zhiwei.middleware.automatic.son.service.TemplateTitleService; import com.zhiwei.middleware.automatic.son.service.TemplateTitleService;
import com.zhiwei.middleware.automatic.son.task.BaseTaskTypePair;
import com.zhiwei.middleware.automatic.son.util.CosineSimilarity; import com.zhiwei.middleware.automatic.son.util.CosineSimilarity;
import com.zhiwei.middleware.automatic.son.util.Tools; import com.zhiwei.middleware.automatic.son.util.Tools;
import com.zhiwei.nlp.AggreeBootStarter; import com.zhiwei.nlp.AggreeBootStarter;
...@@ -36,12 +37,10 @@ import java.util.concurrent.ConcurrentHashMap; ...@@ -36,12 +37,10 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors; import java.util.stream.Collectors;
//@Service //@Service
public class TaskServiceTemplate implements TaskService { public class TaskServiceTemplate extends BaseTaskTypePair<TaskServiceTemplate.TaskTemplateFunctional> implements TaskService {
private final Logger log = LogManager.getLogger(TaskServiceTemplate.class); private final Logger log = LogManager.getLogger(TaskServiceTemplate.class);
private static final Map<String, Pair<TaskType, TaskTemplateFunctional>> TYPE_MAP = new HashMap<>();
private final TemplateTitleService templateTitleService; private final TemplateTitleService templateTitleService;
private final EsDao esDao; private final EsDao esDao;
...@@ -64,24 +63,23 @@ public class TaskServiceTemplate implements TaskService { ...@@ -64,24 +63,23 @@ public class TaskServiceTemplate implements TaskService {
this.esIndexes = esIndexes; this.esIndexes = esIndexes;
this.templateRecordDao = templateRecordDao; this.templateRecordDao = templateRecordDao;
this.executor = executor; this.executor = executor;
TYPE_MAP.put(TaskType.TEMPLATE.getType(), Pair.of(TaskType.TEMPLATE, this::runTask)); taskCache(TaskType.TEMPLATE, this::runTask);
TYPE_MAP.put(TaskType.TEMPLATE_MODIFY.getType(), Pair.of(TaskType.TEMPLATE_MODIFY, this::templateModify)); taskCache(TaskType.TEMPLATE_MODIFY, this::templateModify);
TYPE_MAP.put(TaskType.TEMPLATE_RESET.getType(), Pair.of(TaskType.TEMPLATE_RESET, this::templateReset)); taskCache(TaskType.TEMPLATE_RESET, this::templateReset);
TYPE_MAP.put(TaskType.TEMPLATE_CLEAR_RETRY.getType(), Pair.of(TaskType.TEMPLATE_CLEAR_RETRY, this::templateReset)); taskCache(TaskType.TEMPLATE_CLEAR_RETRY, this::templateReset);
TYPE_MAP.put(TaskType.TEMPLATE_RECORD.getType(), Pair.of(TaskType.TEMPLATE_RECORD, this::templateRecordClean)); taskCache(TaskType.TEMPLATE_RECORD, this::templateRecordClean);
} }
@Override @Override
public TaskType supports(String type) { public TaskType supports(String type) {
Pair<TaskType, TaskTemplateFunctional> par = TYPE_MAP.get(type); return getPairKey(type);
return Objects.isNull(par) ? null : par.getKey();
} }
@Override @Override
public void runTask(AutoTask autoTask) { public void runTask(AutoTask autoTask) {
executor.execute(() -> { executor.execute(() -> {
Pair<TaskType, TaskTemplateFunctional> pair = Objects.requireNonNull(TYPE_MAP.get(autoTask.getType())); TaskTemplateFunctional pair = getPairValue(autoTask.getType());
pair.getValue().template(autoTask.getParamSource()); pair.template(autoTask.getParamSource());
}); });
} }
......
...@@ -12,11 +12,11 @@ import com.zhiwei.middleware.automatic.server.pojo.enums.TemplateStatus; ...@@ -12,11 +12,11 @@ import com.zhiwei.middleware.automatic.server.pojo.enums.TemplateStatus;
import com.zhiwei.middleware.automatic.son.dao.EsDao; import com.zhiwei.middleware.automatic.son.dao.EsDao;
import com.zhiwei.middleware.automatic.son.dao.TemplateRecordDao; import com.zhiwei.middleware.automatic.son.dao.TemplateRecordDao;
import com.zhiwei.middleware.automatic.son.service.TemplateTitleService; import com.zhiwei.middleware.automatic.son.service.TemplateTitleService;
import com.zhiwei.middleware.automatic.son.task.BaseTaskTypePair;
import com.zhiwei.middleware.automatic.son.util.CosineSimilarity; import com.zhiwei.middleware.automatic.son.util.CosineSimilarity;
import com.zhiwei.middleware.automatic.son.util.Tools; import com.zhiwei.middleware.automatic.son.util.Tools;
import com.zhiwei.nlp.AggreeBootStarter; import com.zhiwei.nlp.AggreeBootStarter;
import com.zhiwei.nlp.vo.KResult; import com.zhiwei.nlp.vo.KResult;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.BoolQueryBuilder;
...@@ -36,12 +36,10 @@ import java.util.concurrent.ConcurrentHashMap; ...@@ -36,12 +36,10 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
public class TaskServiceTemplateNEW implements TaskService { public class TaskServiceTemplateNEW extends BaseTaskTypePair<TaskServiceTemplateNEW.TaskTemplateFunctional> implements TaskService {
private final Logger log = LogManager.getLogger(TaskServiceTemplateNEW.class); private final Logger log = LogManager.getLogger(TaskServiceTemplateNEW.class);
private static final Map<String, Pair<TaskType, TaskTemplateFunctional>> TYPE_MAP = new HashMap<>();
private final TemplateTitleService templateTitleService; private final TemplateTitleService templateTitleService;
private final EsDao esDao; private final EsDao esDao;
...@@ -64,24 +62,24 @@ public class TaskServiceTemplateNEW implements TaskService { ...@@ -64,24 +62,24 @@ public class TaskServiceTemplateNEW implements TaskService {
this.esIndexes = esIndexes; this.esIndexes = esIndexes;
this.templateRecordDao = templateRecordDao; this.templateRecordDao = templateRecordDao;
this.executor = executor; this.executor = executor;
TYPE_MAP.put(TaskType.TEMPLATE.getType(), Pair.of(TaskType.TEMPLATE, this::runTask)); taskCache(TaskType.TEMPLATE, this::runTask);
TYPE_MAP.put(TaskType.TEMPLATE_MODIFY.getType(), Pair.of(TaskType.TEMPLATE_MODIFY, this::templateModify)); taskCache(TaskType.TEMPLATE_MODIFY, this::templateModify);
TYPE_MAP.put(TaskType.TEMPLATE_RESET.getType(), Pair.of(TaskType.TEMPLATE_RESET, this::templateReset)); taskCache(TaskType.TEMPLATE_RESET, this::templateReset);
TYPE_MAP.put(TaskType.TEMPLATE_RECORD.getType(), Pair.of(TaskType.TEMPLATE_RECORD, this::templateRecordClean)); taskCache(TaskType.TEMPLATE_CLEAR_RETRY, this::templateReset);
taskCache(TaskType.TEMPLATE_RECORD, this::templateRecordClean);
} }
@Override @Override
public TaskType supports(String type) { public TaskType supports(String type) {
Pair<TaskType, TaskTemplateFunctional> par = TYPE_MAP.get(type); // return getPairKey(type);
// return Objects.isNull(par) ? null : par.getKey();
return null; return null;
} }
@Override @Override
public void runTask(AutoTask autoTask) { public void runTask(AutoTask autoTask) {
executor.execute(() -> { executor.execute(() -> {
Pair<TaskType, TaskTemplateFunctional> pair = Objects.requireNonNull(TYPE_MAP.get(autoTask.getType())); TaskTemplateFunctional pair = getPairValue(autoTask.getType());
pair.getValue().template(autoTask.getParamSource()); pair.template(autoTask.getParamSource());
}); });
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment