refactor: add lombok to jobs module
This commit is contained in:
committed by
Arnold Gálovics
parent
592ed92e87
commit
bc289bcb4d
+1
-1
@@ -78,7 +78,7 @@ public class SchedulerApiResource {
|
|||||||
this.context.authenticatedUser().validateHasReadPermission(SchedulerJobApiConstants.SCHEDULER_RESOURCE_NAME);
|
this.context.authenticatedUser().validateHasReadPermission(SchedulerJobApiConstants.SCHEDULER_RESOURCE_NAME);
|
||||||
final boolean isSchedulerRunning = this.jobRegisterService.isSchedulerRunning();
|
final boolean isSchedulerRunning = this.jobRegisterService.isSchedulerRunning();
|
||||||
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
||||||
final SchedulerDetailData schedulerDetailData = new SchedulerDetailData(isSchedulerRunning);
|
final SchedulerDetailData schedulerDetailData = new SchedulerDetailData().setActive(isSchedulerRunning);
|
||||||
return this.toApiJsonSerializer.serialize(settings, schedulerDetailData,
|
return this.toApiJsonSerializer.serialize(settings, schedulerDetailData,
|
||||||
SchedulerJobApiConstants.SCHEDULER_DETAIL_RESPONSE_DATA_PARAMETERS);
|
SchedulerJobApiConstants.SCHEDULER_DETAIL_RESPONSE_DATA_PARAMETERS);
|
||||||
}
|
}
|
||||||
|
|||||||
+14
-22
@@ -19,43 +19,35 @@
|
|||||||
package org.apache.fineract.infrastructure.jobs.data;
|
package org.apache.fineract.infrastructure.jobs.data;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import lombok.Getter;
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Accessors(chain = true)
|
||||||
public class JobDetailData {
|
public class JobDetailData {
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private final Long jobId;
|
private Long jobId;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private final String displayName;
|
private String displayName;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private final Date nextRunTime;
|
private Date nextRunTime;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private final String initializingError;
|
private String initializingError;
|
||||||
|
|
||||||
@Getter
|
private String cronExpression;
|
||||||
private final String cronExpression;
|
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private final boolean active;
|
private boolean active;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private final boolean currentlyRunning;
|
private boolean currentlyRunning;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private final JobDetailHistoryData lastRunHistory;
|
private JobDetailHistoryData lastRunHistory;
|
||||||
|
|
||||||
public JobDetailData(final Long jobId, final String displayName, final Date nextRunTime, final String initializingError,
|
|
||||||
final String cronExpression, final boolean active, final boolean currentlyRunning, final JobDetailHistoryData lastRunHistory) {
|
|
||||||
this.jobId = jobId;
|
|
||||||
this.displayName = displayName;
|
|
||||||
this.nextRunTime = nextRunTime;
|
|
||||||
this.initializingError = initializingError;
|
|
||||||
this.cronExpression = cronExpression;
|
|
||||||
this.active = active;
|
|
||||||
this.lastRunHistory = lastRunHistory;
|
|
||||||
this.currentlyRunning = currentlyRunning;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+13
-18
@@ -19,38 +19,33 @@
|
|||||||
package org.apache.fineract.infrastructure.jobs.data;
|
package org.apache.fineract.infrastructure.jobs.data;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Accessors(chain = true)
|
||||||
public class JobDetailHistoryData {
|
public class JobDetailHistoryData {
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private final Long version;
|
private Long version;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private final Date jobRunStartTime;
|
private Date jobRunStartTime;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private final Date jobRunEndTime;
|
private Date jobRunEndTime;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private final String status;
|
private String status;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private final String jobRunErrorMessage;
|
private String jobRunErrorMessage;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private final String triggerType;
|
private String triggerType;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private final String jobRunErrorLog;
|
private String jobRunErrorLog;
|
||||||
|
|
||||||
public JobDetailHistoryData(final Long version, final Date jobRunStartTime, final Date jobRunEndTime, final String status,
|
|
||||||
final String jobRunErrorMessage, final String triggerType, final String jobRunErrorLog) {
|
|
||||||
this.version = version;
|
|
||||||
this.jobRunStartTime = jobRunStartTime;
|
|
||||||
this.jobRunEndTime = jobRunEndTime;
|
|
||||||
this.status = status;
|
|
||||||
this.jobRunErrorMessage = jobRunErrorMessage;
|
|
||||||
this.triggerType = triggerType;
|
|
||||||
this.jobRunErrorLog = jobRunErrorLog;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+8
-5
@@ -18,12 +18,15 @@
|
|||||||
*/
|
*/
|
||||||
package org.apache.fineract.infrastructure.jobs.data;
|
package org.apache.fineract.infrastructure.jobs.data;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Accessors(chain = true)
|
||||||
public class SchedulerDetailData {
|
public class SchedulerDetailData {
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private final boolean active;
|
private boolean active;
|
||||||
|
|
||||||
public SchedulerDetailData(final boolean active) {
|
|
||||||
this.active = active;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+9
-33
@@ -22,10 +22,18 @@ import java.util.Objects;
|
|||||||
import javax.persistence.Column;
|
import javax.persistence.Column;
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
|
import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "job_parameters")
|
@Table(name = "job_parameters")
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Accessors(chain = true)
|
||||||
public class JobParameter extends AbstractPersistableCustom {
|
public class JobParameter extends AbstractPersistableCustom {
|
||||||
|
|
||||||
@Column(name = "job_id", nullable = false)
|
@Column(name = "job_id", nullable = false)
|
||||||
@@ -37,40 +45,8 @@ public class JobParameter extends AbstractPersistableCustom {
|
|||||||
@Column(name = "parameter_value", nullable = true)
|
@Column(name = "parameter_value", nullable = true)
|
||||||
private String parameterValue;
|
private String parameterValue;
|
||||||
|
|
||||||
public JobParameter() {}
|
|
||||||
|
|
||||||
public JobParameter(final Long jobId, final String parameterName, final String parameterValue) {
|
|
||||||
this.jobId = jobId;
|
|
||||||
this.parameterName = parameterName;
|
|
||||||
this.parameterValue = parameterValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static JobParameter getInstance(final Long jobId, final String parameterName, final String parameterValue) {
|
public static JobParameter getInstance(final Long jobId, final String parameterName, final String parameterValue) {
|
||||||
return new JobParameter(jobId, parameterName, parameterValue);
|
return new JobParameter().setJobId(jobId).setParameterName(parameterName).setParameterValue(parameterValue);
|
||||||
}
|
|
||||||
|
|
||||||
public Long getJobId() {
|
|
||||||
return jobId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setJobId(final Long jobId) {
|
|
||||||
this.jobId = jobId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getParameterName() {
|
|
||||||
return parameterName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setParameterName(final String parameterName) {
|
|
||||||
this.parameterName = parameterName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getParameterValue() {
|
|
||||||
return parameterValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setParameterValue(final String parameterValue) {
|
|
||||||
this.parameterValue = parameterValue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+8
-84
@@ -26,6 +26,10 @@ import javax.persistence.Entity;
|
|||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
import javax.persistence.Temporal;
|
import javax.persistence.Temporal;
|
||||||
import javax.persistence.TemporalType;
|
import javax.persistence.TemporalType;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.fineract.infrastructure.core.api.JsonCommand;
|
import org.apache.fineract.infrastructure.core.api.JsonCommand;
|
||||||
import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
|
import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
|
||||||
@@ -33,6 +37,10 @@ import org.apache.fineract.infrastructure.jobs.api.SchedulerJobApiConstants;
|
|||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "job")
|
@Table(name = "job")
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Accessors(chain = true)
|
||||||
public class ScheduledJobDetail extends AbstractPersistableCustom {
|
public class ScheduledJobDetail extends AbstractPersistableCustom {
|
||||||
|
|
||||||
@Column(name = "name")
|
@Column(name = "name")
|
||||||
@@ -89,82 +97,6 @@ public class ScheduledJobDetail extends AbstractPersistableCustom {
|
|||||||
@Column(name = "is_misfired")
|
@Column(name = "is_misfired")
|
||||||
private boolean triggerMisfired;
|
private boolean triggerMisfired;
|
||||||
|
|
||||||
protected ScheduledJobDetail() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getJobName() {
|
|
||||||
return this.jobName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCronExpression() {
|
|
||||||
return this.cronExpression;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Short getTaskPriority() {
|
|
||||||
return this.taskPriority;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getGroupName() {
|
|
||||||
return this.groupName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getJobKey() {
|
|
||||||
return this.jobKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Short getSchedulerGroup() {
|
|
||||||
return this.schedulerGroup;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isActiveSchedular() {
|
|
||||||
return this.activeSchedular;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateCronExpression(final String cronExpression) {
|
|
||||||
this.cronExpression = cronExpression;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updatePreviousRunStartTime(final Date previousRunStartTime) {
|
|
||||||
this.previousRunStartTime = previousRunStartTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getNextRunTime() {
|
|
||||||
return this.nextRunTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateNextRunTime(final Date nextRunTime) {
|
|
||||||
this.nextRunTime = nextRunTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateJobKey(final String jobKey) {
|
|
||||||
this.jobKey = jobKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean getIsMismatchedJob() {
|
|
||||||
return this.isMismatchedJob;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIsMismatchedJob(final boolean isMismatchedJob) {
|
|
||||||
this.isMismatchedJob = isMismatchedJob;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateErrorLog(final String errorLog) {
|
|
||||||
this.errorLog = errorLog;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isCurrentlyRunning() {
|
|
||||||
return this.currentlyRunning;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateCurrentlyRunningStatus(final boolean currentlyRunning) {
|
|
||||||
this.currentlyRunning = currentlyRunning;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getNodeId() {
|
|
||||||
return this.nodeId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, Object> update(final JsonCommand command) {
|
public Map<String, Object> update(final JsonCommand command) {
|
||||||
final Map<String, Object> actualChanges = new LinkedHashMap<>(9);
|
final Map<String, Object> actualChanges = new LinkedHashMap<>(9);
|
||||||
|
|
||||||
@@ -188,12 +120,4 @@ public class ScheduledJobDetail extends AbstractPersistableCustom {
|
|||||||
return actualChanges;
|
return actualChanges;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isTriggerMisfired() {
|
|
||||||
return this.triggerMisfired;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateTriggerMisfired(final boolean triggerMisfired) {
|
|
||||||
this.triggerMisfired = triggerMisfired;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+8
-4
@@ -26,10 +26,18 @@ import javax.persistence.ManyToOne;
|
|||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
import javax.persistence.Temporal;
|
import javax.persistence.Temporal;
|
||||||
import javax.persistence.TemporalType;
|
import javax.persistence.TemporalType;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
|
import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "job_run_history")
|
@Table(name = "job_run_history")
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Accessors(chain = true)
|
||||||
public class ScheduledJobRunHistory extends AbstractPersistableCustom {
|
public class ScheduledJobRunHistory extends AbstractPersistableCustom {
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@@ -59,10 +67,6 @@ public class ScheduledJobRunHistory extends AbstractPersistableCustom {
|
|||||||
@Column(name = "error_log")
|
@Column(name = "error_log")
|
||||||
private String errorLog;
|
private String errorLog;
|
||||||
|
|
||||||
public ScheduledJobRunHistory() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public ScheduledJobRunHistory(final ScheduledJobDetail scheduledJobDetail, final Long version, final Date startTime, final Date endTime,
|
public ScheduledJobRunHistory(final ScheduledJobDetail scheduledJobDetail, final Long version, final Date startTime, final Date endTime,
|
||||||
final String status, final String errorMessage, final String triggerType, final String errorLog) {
|
final String status, final String errorMessage, final String triggerType, final String errorLog) {
|
||||||
this.scheduledJobDetail = scheduledJobDetail;
|
this.scheduledJobDetail = scheduledJobDetail;
|
||||||
|
|||||||
+8
-28
@@ -21,10 +21,18 @@ package org.apache.fineract.infrastructure.jobs.domain;
|
|||||||
import javax.persistence.Column;
|
import javax.persistence.Column;
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
|
import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "scheduler_detail")
|
@Table(name = "scheduler_detail")
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Accessors(chain = true)
|
||||||
public class SchedulerDetail extends AbstractPersistableCustom {
|
public class SchedulerDetail extends AbstractPersistableCustom {
|
||||||
|
|
||||||
@Column(name = "execute_misfired_jobs")
|
@Column(name = "execute_misfired_jobs")
|
||||||
@@ -35,32 +43,4 @@ public class SchedulerDetail extends AbstractPersistableCustom {
|
|||||||
|
|
||||||
@Column(name = "reset_scheduler_on_bootup")
|
@Column(name = "reset_scheduler_on_bootup")
|
||||||
private boolean resetSchedulerOnBootup;
|
private boolean resetSchedulerOnBootup;
|
||||||
|
|
||||||
protected SchedulerDetail() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isExecuteInstructionForMisfiredJobs() {
|
|
||||||
return this.executeInstructionForMisfiredJobs;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateExecuteInstructionForMisfiredJobs(final boolean executeInstructionForMisfiredJobs) {
|
|
||||||
this.executeInstructionForMisfiredJobs = executeInstructionForMisfiredJobs;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isSuspended() {
|
|
||||||
return this.suspended;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateSuspendedState(final boolean suspended) {
|
|
||||||
this.suspended = suspended;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isResetSchedulerOnBootup() {
|
|
||||||
return this.resetSchedulerOnBootup;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateResetSchedulerOnBootup(final boolean resetSchedulerOnBootup) {
|
|
||||||
this.resetSchedulerOnBootup = resetSchedulerOnBootup;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+18
-18
@@ -128,7 +128,7 @@ public class JobRegisterServiceImpl implements JobRegisterService, ApplicationLi
|
|||||||
this.schedularWritePlatformService.saveOrUpdate(scheduledJobDetail);
|
this.schedularWritePlatformService.saveOrUpdate(scheduledJobDetail);
|
||||||
} catch (final Throwable throwable) {
|
} catch (final Throwable throwable) {
|
||||||
final String stackTrace = getStackTraceAsString(throwable);
|
final String stackTrace = getStackTraceAsString(throwable);
|
||||||
scheduledJobDetail.updateErrorLog(stackTrace);
|
scheduledJobDetail.setErrorLog(stackTrace);
|
||||||
this.schedularWritePlatformService.saveOrUpdate(scheduledJobDetail);
|
this.schedularWritePlatformService.saveOrUpdate(scheduledJobDetail);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -137,7 +137,7 @@ public class JobRegisterServiceImpl implements JobRegisterService, ApplicationLi
|
|||||||
public void pauseScheduler() {
|
public void pauseScheduler() {
|
||||||
final SchedulerDetail schedulerDetail = this.schedularWritePlatformService.retriveSchedulerDetail();
|
final SchedulerDetail schedulerDetail = this.schedularWritePlatformService.retriveSchedulerDetail();
|
||||||
if (!schedulerDetail.isSuspended()) {
|
if (!schedulerDetail.isSuspended()) {
|
||||||
schedulerDetail.updateSuspendedState(true);
|
schedulerDetail.setSuspended(true);
|
||||||
this.schedularWritePlatformService.updateSchedulerDetail(schedulerDetail);
|
this.schedularWritePlatformService.updateSchedulerDetail(schedulerDetail);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -146,16 +146,16 @@ public class JobRegisterServiceImpl implements JobRegisterService, ApplicationLi
|
|||||||
public void startScheduler() {
|
public void startScheduler() {
|
||||||
final SchedulerDetail schedulerDetail = this.schedularWritePlatformService.retriveSchedulerDetail();
|
final SchedulerDetail schedulerDetail = this.schedularWritePlatformService.retriveSchedulerDetail();
|
||||||
if (schedulerDetail.isSuspended()) {
|
if (schedulerDetail.isSuspended()) {
|
||||||
schedulerDetail.updateSuspendedState(false);
|
schedulerDetail.setSuspended(false);
|
||||||
this.schedularWritePlatformService.updateSchedulerDetail(schedulerDetail);
|
this.schedularWritePlatformService.updateSchedulerDetail(schedulerDetail);
|
||||||
if (schedulerDetail.isExecuteInstructionForMisfiredJobs()) {
|
if (schedulerDetail.isExecuteInstructionForMisfiredJobs()) {
|
||||||
final List<ScheduledJobDetail> scheduledJobDetails = this.schedularWritePlatformService
|
final List<ScheduledJobDetail> scheduledJobDetails = this.schedularWritePlatformService
|
||||||
.retrieveAllJobs(fineractProperties.getNodeId());
|
.retrieveAllJobs(fineractProperties.getNodeId());
|
||||||
for (final ScheduledJobDetail jobDetail : scheduledJobDetails) {
|
for (final ScheduledJobDetail jobDetail : scheduledJobDetails) {
|
||||||
if (jobDetail.isTriggerMisfired() || jobDetail.getIsMismatchedJob()) {
|
if (jobDetail.isTriggerMisfired() || jobDetail.isMismatchedJob()) {
|
||||||
if (jobDetail.isActiveSchedular()) {
|
if (jobDetail.isActiveSchedular()) {
|
||||||
executeJob(jobDetail, SchedulerServiceConstants.TRIGGER_TYPE_CRON);
|
executeJob(jobDetail, SchedulerServiceConstants.TRIGGER_TYPE_CRON);
|
||||||
jobDetail.setIsMismatchedJob(false);
|
jobDetail.setMismatchedJob(false);
|
||||||
}
|
}
|
||||||
final String schedulerName = getSchedulerName(jobDetail);
|
final String schedulerName = getSchedulerName(jobDetail);
|
||||||
final Scheduler scheduler = this.schedulers.get(schedulerName);
|
final Scheduler scheduler = this.schedulers.get(schedulerName);
|
||||||
@@ -166,14 +166,14 @@ public class JobRegisterServiceImpl implements JobRegisterService, ApplicationLi
|
|||||||
final List<? extends Trigger> triggers = scheduler.getTriggersOfJob(jobKey);
|
final List<? extends Trigger> triggers = scheduler.getTriggersOfJob(jobKey);
|
||||||
for (final Trigger trigger : triggers) {
|
for (final Trigger trigger : triggers) {
|
||||||
if (trigger.getNextFireTime() != null && trigger.getNextFireTime().after(jobDetail.getNextRunTime())) {
|
if (trigger.getNextFireTime() != null && trigger.getNextFireTime().after(jobDetail.getNextRunTime())) {
|
||||||
jobDetail.updateNextRunTime(trigger.getNextFireTime());
|
jobDetail.setNextRunTime(trigger.getNextFireTime());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (final SchedulerException e) {
|
} catch (final SchedulerException e) {
|
||||||
log.error("Error occured.", e);
|
log.error("Error occured.", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
jobDetail.updateTriggerMisfired(false);
|
jobDetail.setTriggerMisfired(false);
|
||||||
this.schedularWritePlatformService.saveOrUpdate(jobDetail);
|
this.schedularWritePlatformService.saveOrUpdate(jobDetail);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -188,7 +188,7 @@ public class JobRegisterServiceImpl implements JobRegisterService, ApplicationLi
|
|||||||
if (nodeIdStored.equals(fineractProperties.getNodeId()) || nodeIdStored.equals("0")) {
|
if (nodeIdStored.equals(fineractProperties.getNodeId()) || nodeIdStored.equals("0")) {
|
||||||
rescheduleJob(scheduledJobDetail);
|
rescheduleJob(scheduledJobDetail);
|
||||||
} else {
|
} else {
|
||||||
scheduledJobDetail.setIsMismatchedJob(true);
|
scheduledJobDetail.setMismatchedJob(true);
|
||||||
this.schedularWritePlatformService.saveOrUpdate(scheduledJobDetail);
|
this.schedularWritePlatformService.saveOrUpdate(scheduledJobDetail);
|
||||||
throw new JobNodeIdMismatchingException(nodeIdStored, fineractProperties.getNodeId());
|
throw new JobNodeIdMismatchingException(nodeIdStored, fineractProperties.getNodeId());
|
||||||
}
|
}
|
||||||
@@ -204,10 +204,10 @@ public class JobRegisterServiceImpl implements JobRegisterService, ApplicationLi
|
|||||||
|
|
||||||
if (nodeIdStored.equals(fineractProperties.getNodeId()) || nodeIdStored.equals("0")) {
|
if (nodeIdStored.equals(fineractProperties.getNodeId()) || nodeIdStored.equals("0")) {
|
||||||
executeJob(scheduledJobDetail, null);
|
executeJob(scheduledJobDetail, null);
|
||||||
scheduledJobDetail.setIsMismatchedJob(false);
|
scheduledJobDetail.setMismatchedJob(false);
|
||||||
this.schedularWritePlatformService.saveOrUpdate(scheduledJobDetail);
|
this.schedularWritePlatformService.saveOrUpdate(scheduledJobDetail);
|
||||||
} else {
|
} else {
|
||||||
scheduledJobDetail.setIsMismatchedJob(true);
|
scheduledJobDetail.setMismatchedJob(true);
|
||||||
this.schedularWritePlatformService.saveOrUpdate(scheduledJobDetail);
|
this.schedularWritePlatformService.saveOrUpdate(scheduledJobDetail);
|
||||||
throw new JobNodeIdMismatchingException(nodeIdStored, fineractProperties.getNodeId());
|
throw new JobNodeIdMismatchingException(nodeIdStored, fineractProperties.getNodeId());
|
||||||
}
|
}
|
||||||
@@ -232,25 +232,25 @@ public class JobRegisterServiceImpl implements JobRegisterService, ApplicationLi
|
|||||||
public void scheduleJob(final ScheduledJobDetail scheduledJobDetails) {
|
public void scheduleJob(final ScheduledJobDetail scheduledJobDetails) {
|
||||||
try {
|
try {
|
||||||
final JobDetail jobDetail = createJobDetail(scheduledJobDetails);
|
final JobDetail jobDetail = createJobDetail(scheduledJobDetails);
|
||||||
scheduledJobDetails.updateJobKey(getJobKeyAsString(jobDetail.getKey()));
|
scheduledJobDetails.setJobKey(getJobKeyAsString(jobDetail.getKey()));
|
||||||
if (!scheduledJobDetails.isActiveSchedular()) {
|
if (!scheduledJobDetails.isActiveSchedular()) {
|
||||||
scheduledJobDetails.updateNextRunTime(null);
|
scheduledJobDetails.setNextRunTime(null);
|
||||||
scheduledJobDetails.updateCurrentlyRunningStatus(false);
|
scheduledJobDetails.setCurrentlyRunning(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Trigger trigger = createTrigger(scheduledJobDetails, jobDetail);
|
final Trigger trigger = createTrigger(scheduledJobDetails, jobDetail);
|
||||||
final Scheduler scheduler = getScheduler(scheduledJobDetails);
|
final Scheduler scheduler = getScheduler(scheduledJobDetails);
|
||||||
scheduler.scheduleJob(jobDetail, trigger);
|
scheduler.scheduleJob(jobDetail, trigger);
|
||||||
scheduledJobDetails.updateNextRunTime(trigger.getNextFireTime());
|
scheduledJobDetails.setNextRunTime(trigger.getNextFireTime());
|
||||||
scheduledJobDetails.updateErrorLog(null);
|
scheduledJobDetails.setErrorLog(null);
|
||||||
} catch (final Throwable throwable) {
|
} catch (final Throwable throwable) {
|
||||||
scheduledJobDetails.updateNextRunTime(null);
|
scheduledJobDetails.setNextRunTime(null);
|
||||||
final String stackTrace = getStackTraceAsString(throwable);
|
final String stackTrace = getStackTraceAsString(throwable);
|
||||||
scheduledJobDetails.updateErrorLog(stackTrace);
|
scheduledJobDetails.setErrorLog(stackTrace);
|
||||||
log.error("Could not schedule job: {}", scheduledJobDetails.getJobName(), throwable);
|
log.error("Could not schedule job: {}", scheduledJobDetails.getJobName(), throwable);
|
||||||
}
|
}
|
||||||
scheduledJobDetails.updateCurrentlyRunningStatus(false);
|
scheduledJobDetails.setCurrentlyRunning(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+2
-2
@@ -62,12 +62,12 @@ public class JobSchedulerServiceImpl implements ApplicationListener<ContextRefre
|
|||||||
.retrieveAllJobs(fineractProperties.getNodeId());
|
.retrieveAllJobs(fineractProperties.getNodeId());
|
||||||
for (final ScheduledJobDetail jobDetails : scheduledJobDetails) {
|
for (final ScheduledJobDetail jobDetails : scheduledJobDetails) {
|
||||||
jobRegisterService.scheduleJob(jobDetails);
|
jobRegisterService.scheduleJob(jobDetails);
|
||||||
jobDetails.updateTriggerMisfired(false);
|
jobDetails.setTriggerMisfired(false);
|
||||||
schedularWritePlatformService.saveOrUpdate(jobDetails);
|
schedularWritePlatformService.saveOrUpdate(jobDetails);
|
||||||
}
|
}
|
||||||
final SchedulerDetail schedulerDetail = schedularWritePlatformService.retriveSchedulerDetail();
|
final SchedulerDetail schedulerDetail = schedularWritePlatformService.retriveSchedulerDetail();
|
||||||
if (schedulerDetail.isResetSchedulerOnBootup()) {
|
if (schedulerDetail.isResetSchedulerOnBootup()) {
|
||||||
schedulerDetail.updateSuspendedState(false);
|
schedulerDetail.setSuspended(false);
|
||||||
schedularWritePlatformService.updateSchedulerDetail(schedulerDetail);
|
schedularWritePlatformService.updateSchedulerDetail(schedulerDetail);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -142,10 +142,10 @@ public class SchedularWritePlatformServiceJpaRepositoryImpl implements Schedular
|
|||||||
}
|
}
|
||||||
final SchedulerDetail schedulerDetail = retriveSchedulerDetail();
|
final SchedulerDetail schedulerDetail = retriveSchedulerDetail();
|
||||||
if (triggerType.equals(SchedulerServiceConstants.TRIGGER_TYPE_CRON) && schedulerDetail.isSuspended()) {
|
if (triggerType.equals(SchedulerServiceConstants.TRIGGER_TYPE_CRON) && schedulerDetail.isSuspended()) {
|
||||||
scheduledJobDetail.updateTriggerMisfired(true);
|
scheduledJobDetail.setTriggerMisfired(true);
|
||||||
isStopExecution = true;
|
isStopExecution = true;
|
||||||
} else if (!isStopExecution) {
|
} else if (!isStopExecution) {
|
||||||
scheduledJobDetail.updateCurrentlyRunningStatus(true);
|
scheduledJobDetail.setCurrentlyRunning(true);
|
||||||
}
|
}
|
||||||
this.scheduledJobDetailsRepository.save(scheduledJobDetail);
|
this.scheduledJobDetailsRepository.save(scheduledJobDetail);
|
||||||
return isStopExecution;
|
return isStopExecution;
|
||||||
|
|||||||
+6
-5
@@ -107,14 +107,15 @@ public class SchedulerJobListener implements JobListener {
|
|||||||
}
|
}
|
||||||
if (SchedulerServiceConstants.TRIGGER_TYPE_CRON.equals(triggerType) && trigger.getNextFireTime() != null
|
if (SchedulerServiceConstants.TRIGGER_TYPE_CRON.equals(triggerType) && trigger.getNextFireTime() != null
|
||||||
&& trigger.getNextFireTime().after(scheduledJobDetails.getNextRunTime())) {
|
&& trigger.getNextFireTime().after(scheduledJobDetails.getNextRunTime())) {
|
||||||
scheduledJobDetails.updateNextRunTime(trigger.getNextFireTime());
|
scheduledJobDetails.setNextRunTime(trigger.getNextFireTime());
|
||||||
}
|
}
|
||||||
|
|
||||||
scheduledJobDetails.updatePreviousRunStartTime(context.getFireTime());
|
scheduledJobDetails.setPreviousRunStartTime(context.getFireTime());
|
||||||
scheduledJobDetails.updateCurrentlyRunningStatus(false);
|
scheduledJobDetails.setCurrentlyRunning(false);
|
||||||
|
|
||||||
final ScheduledJobRunHistory runHistory = new ScheduledJobRunHistory(scheduledJobDetails, version, context.getFireTime(),
|
final ScheduledJobRunHistory runHistory = new ScheduledJobRunHistory().setScheduledJobDetail(scheduledJobDetails)
|
||||||
new Date(), status, errorMessage, triggerType, errorLog);
|
.setVersion(version).setStartTime(context.getFireTime()).setEndTime(new Date()).setStatus(status)
|
||||||
|
.setErrorMessage(errorMessage).setTriggerType(triggerType).setErrorLog(errorLog);
|
||||||
// scheduledJobDetails.addRunHistory(runHistory);
|
// scheduledJobDetails.addRunHistory(runHistory);
|
||||||
|
|
||||||
this.schedularService.saveOrUpdate(scheduledJobDetails, runHistory);
|
this.schedularService.saveOrUpdate(scheduledJobDetails, runHistory);
|
||||||
|
|||||||
+9
-6
@@ -185,11 +185,13 @@ public class SchedulerJobRunnerReadServiceImpl implements SchedulerJobRunnerRead
|
|||||||
|
|
||||||
JobDetailHistoryData lastRunHistory = null;
|
JobDetailHistoryData lastRunHistory = null;
|
||||||
if (version > 0) {
|
if (version > 0) {
|
||||||
lastRunHistory = new JobDetailHistoryData(version, jobRunStartTime, jobRunEndTime, status, jobRunErrorMessage, triggerType,
|
lastRunHistory = new JobDetailHistoryData().setVersion(version).setJobRunStartTime(jobRunStartTime)
|
||||||
jobRunErrorLog);
|
.setJobRunEndTime(jobRunEndTime).setStatus(status).setJobRunErrorMessage(jobRunErrorMessage)
|
||||||
|
.setTriggerType(triggerType).setJobRunErrorLog(jobRunErrorLog);
|
||||||
}
|
}
|
||||||
final JobDetailData jobDetail = new JobDetailData(id, displayName, nextRunTime, initializingError, cronExpression, active,
|
final JobDetailData jobDetail = new JobDetailData().setJobId(id).setDisplayName(displayName).setNextRunTime(nextRunTime)
|
||||||
currentlyRunning, lastRunHistory);
|
.setInitializingError(initializingError).setCronExpression(cronExpression).setActive(active)
|
||||||
|
.setCurrentlyRunning(currentlyRunning).setLastRunHistory(lastRunHistory);
|
||||||
return jobDetail;
|
return jobDetail;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -220,8 +222,9 @@ public class SchedulerJobRunnerReadServiceImpl implements SchedulerJobRunnerRead
|
|||||||
final String jobRunErrorMessage = rs.getString("jobRunErrorMessage");
|
final String jobRunErrorMessage = rs.getString("jobRunErrorMessage");
|
||||||
final String triggerType = rs.getString("triggerType");
|
final String triggerType = rs.getString("triggerType");
|
||||||
final String jobRunErrorLog = rs.getString("jobRunErrorLog");
|
final String jobRunErrorLog = rs.getString("jobRunErrorLog");
|
||||||
final JobDetailHistoryData jobDetailHistory = new JobDetailHistoryData(version, jobRunStartTime, jobRunEndTime, status,
|
final JobDetailHistoryData jobDetailHistory = new JobDetailHistoryData().setVersion(version).setJobRunStartTime(jobRunStartTime)
|
||||||
jobRunErrorMessage, triggerType, jobRunErrorLog);
|
.setJobRunEndTime(jobRunEndTime).setStatus(status).setJobRunErrorMessage(jobRunErrorMessage).setTriggerType(triggerType)
|
||||||
|
.setJobRunErrorLog(jobRunErrorLog);
|
||||||
return jobDetailHistory;
|
return jobDetailHistory;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user