scheduler-service отправка команд в очереди по расписанию - рефакторинг команды запуска (стандартизация)
This commit is contained in:
parent
7647a0ff5b
commit
06f53ad40d
4 changed files with 29 additions and 39 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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";
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue