scheduler-service отправка команд в очереди по расписанию - рефакторинг команды запуска (стандартизация)

This commit is contained in:
AKurakin 2023-01-31 16:16:55 +03:00
parent 7647a0ff5b
commit 06f53ad40d
4 changed files with 29 additions and 39 deletions

View file

@ -6,7 +6,6 @@ import io.swagger.annotations.ApiModelProperty;
import ru.spcex.clearing.backendapi.domain.actions.IAction; import ru.spcex.clearing.backendapi.domain.actions.IAction;
import ru.spcex.clearing.backendapi.errors.BackEndError; import ru.spcex.clearing.backendapi.errors.BackEndError;
import ru.spcex.clearing.platform.messaging.domain.ActionType; import ru.spcex.clearing.platform.messaging.domain.ActionType;
import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportWithPeriodRequest;
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest; import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest;
import ru.spcex.platform.enumeration.Task; import ru.spcex.platform.enumeration.Task;
import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.enumeration.EnumMessage;
@ -31,18 +30,12 @@ public class LauncherNew implements IAction<Object> {
@Override @Override
public Object toRequest() { public Object toRequest() {
if (Task.createReport_GREP.equalsByKey(task)) { LauncherCommandRequest taskRunnerCommandRequest = new LauncherCommandRequest();
ReportWithPeriodRequest reportCommand = new ReportWithPeriodRequest(); taskRunnerCommandRequest.setTaskName(task);
reportCommand.setReportId(task); taskRunnerCommandRequest.setCompanyId(companyId);
return reportCommand; taskRunnerCommandRequest.setSecurityId(securityId);
} else { taskRunnerCommandRequest.setUserId(userId);
LauncherCommandRequest taskRunnerCommandRequest = new LauncherCommandRequest(); return taskRunnerCommandRequest;
taskRunnerCommandRequest.setTaskName(task);
taskRunnerCommandRequest.setCompanyId(companyId);
taskRunnerCommandRequest.setSecurityId(securityId);
taskRunnerCommandRequest.setUserId(userId);
return taskRunnerCommandRequest;
}
} }
@Override @Override

View file

@ -8,7 +8,7 @@ import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportWithPeriodRequest; import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest;
import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
import ru.spcex.clearing.reports.config.element.ReportsServiceSettings; import ru.spcex.clearing.reports.config.element.ReportsServiceSettings;
import ru.spcex.platform.enumeration.Task; import ru.spcex.platform.enumeration.Task;
@ -40,20 +40,23 @@ public class QCommandExecutor extends QueueConsumer implements InitializingBean
@Override @Override
public void afterPropertiesSet() { public void afterPropertiesSet() {
log.info("Init queue listener {}", getClass().getSimpleName()); log.info("Init queue listener {}", getClass().getSimpleName());
callback(ReportWithPeriodRequest.class) callback(LauncherCommandRequest.class)
.setConsumer(this::newReportWithPeriod) .setConsumer(this::newReportWithPeriod)
.forDestination(Task.createReport_GREP.topic(), callbacks::put); .forDestination(Task.createReport_GREP.topic(), callbacks::put);
init(); init();
} }
private void newReportWithPeriod(BaseRequest<ReportWithPeriodRequest> reportRequest) { private void newReportWithPeriod(BaseRequest<LauncherCommandRequest> reportRequest) {
ReportWithPeriodRequest request = reportRequest.getRequestPayload(); LauncherCommandRequest request = reportRequest.getRequestPayload();
log.info("newReportWithPeriod request received: {}", request); log.info("newReportWithPeriod request received: {}", request);
final String taskName = QUEUE_RUN_REPORT_COMMAND; //request.getTaskName();
if (StringUtils.isBlank(request.getReportId())) // if (StringUtils.isBlank(request.getReportId()))
throw new IllegalStateException("ReportID is empty"); // throw new IllegalStateException("ReportID is empty");
LocalDate startDate = request.getStartDate(); // LocalDate startDate = request.getStartDate();
LocalDate endDate = request.getEndDate(); // LocalDate endDate = request.getEndDate();
LocalDate startDate = null;
LocalDate endDate = null;
if (startDate == null && endDate == null) { if (startDate == null && endDate == null) {
endDate = LocalDate.now(); endDate = LocalDate.now();
startDate = LocalDate.of(endDate.getYear(), endDate.getMonth(), 1); startDate = LocalDate.of(endDate.getYear(), endDate.getMonth(), 1);
@ -65,18 +68,18 @@ public class QCommandExecutor extends QueueConsumer implements InitializingBean
throw new IllegalStateException("StartDate > EndDate"); throw new IllegalStateException("StartDate > EndDate");
try { try {
if (QUEUE_RUN_REPORT_COMMAND.equals(request.getReportId()) if (QUEUE_RUN_REPORT_COMMAND.equals(taskName)
|| QUEUE_RUN_DAILY_REPORT_COMMAND.equals(request.getReportId())) { || QUEUE_RUN_DAILY_REPORT_COMMAND.equals(taskName)) {
log.info("Generate all report by command {}", request.getReportId()); log.info("Generate all report by command {}", taskName);
reportsServiceCommand.generateReportAll(request.getReportId(), startDate, endDate); reportsServiceCommand.generateReportAll(taskName, startDate, endDate);
} else { } else {
log.info("Generate single report by command {}", request.getReportId()); log.info("Generate single report by command {}", taskName);
reportsServiceCommand.generateReportById(request.getReportId(), startDate, endDate); reportsServiceCommand.generateReportById(taskName, startDate, endDate);
} }
log.debug("successfully processed"); log.debug("successfully processed");
} catch (IOException e) { } catch (IOException e) {
log.error("Error create report {}: {}", request.getReportId(), ExceptionUtils.getStackTrace(e)); log.error("Error create report {}: {}", taskName, ExceptionUtils.getStackTrace(e));
} }
} }

View file

@ -10,7 +10,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import ru.spcex.clearing.platform.messaging.domain.ActionType; import ru.spcex.clearing.platform.messaging.domain.ActionType;
import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportWithPeriodRequest;
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest; import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest;
import ru.spcex.platform.enumeration.Task; import ru.spcex.platform.enumeration.Task;
import ru.spcex.platform.imdg.api.ImdgId; import ru.spcex.platform.imdg.api.ImdgId;
@ -33,16 +32,10 @@ public class LauncherSender {
protected BaseRequest<Object> makeCmdRequest(Task byTask, Long userId) { protected BaseRequest<Object> makeCmdRequest(Task byTask, Long userId) {
Object toRequest; Object toRequest;
if (Task.createReport_GREP.equals(byTask)) { // см. ru.spcex.clearing.backendapi.controller.request.cud.schedule.LauncherNew#toRequest LauncherCommandRequest taskRunnerCommandRequest = new LauncherCommandRequest();
ReportWithPeriodRequest reportCommand = new ReportWithPeriodRequest(); taskRunnerCommandRequest.setTaskName(byTask.getKey());
reportCommand.setReportId(byTask.getKey()); taskRunnerCommandRequest.setUserId(userId);
toRequest = reportCommand; toRequest = taskRunnerCommandRequest;
} else {
LauncherCommandRequest taskRunnerCommandRequest = new LauncherCommandRequest();
taskRunnerCommandRequest.setTaskName(byTask.getKey());
taskRunnerCommandRequest.setUserId(userId);
toRequest = taskRunnerCommandRequest;
}
BaseRequest<Object> request = new BaseRequest<>(); BaseRequest<Object> request = new BaseRequest<>();
request.setId(idGenerator.nextId()); request.setId(idGenerator.nextId());
request.setActionType(ActionType.NEW); request.setActionType(ActionType.NEW);

View file

@ -57,6 +57,7 @@ public interface Consts {
String REGISTRY_COVERED_DEAL_REGISTER_NEW = "registry-covered-deal-register-new"; String REGISTRY_COVERED_DEAL_REGISTER_NEW = "registry-covered-deal-register-new";
String REGISTRY_ADMITTED_DEAL_REGISTER_NEW = "registry-admitted-deal-register-new"; String REGISTRY_ADMITTED_DEAL_REGISTER_NEW = "registry-admitted-deal-register-new";
String REGISTRY_DEAL_REGISTER_NEW = "registry-deal-register-new";
String REGISTRY_ORDER_REGISTER_NEW = "registry-order-register-new"; String REGISTRY_ORDER_REGISTER_NEW = "registry-order-register-new";
String REGISTRY_CONTRACT_REGISTER_NEW = "registry-contract-register-new"; String REGISTRY_CONTRACT_REGISTER_NEW = "registry-contract-register-new";