Task results refactoring
This commit is contained in:
parent
9e878923e1
commit
950d1d85c4
@ -21,8 +21,8 @@ import org.thingsboard.server.common.data.job.DummyJobConfiguration;
|
||||
import org.thingsboard.server.common.data.job.Job;
|
||||
import org.thingsboard.server.common.data.job.JobType;
|
||||
import org.thingsboard.server.common.data.job.task.DummyTask;
|
||||
import org.thingsboard.server.common.data.job.task.DummyTask.DummyTaskFailure;
|
||||
import org.thingsboard.server.common.data.job.task.DummyTaskResult;
|
||||
import org.thingsboard.server.common.data.job.task.DummyTaskResult.DummyTaskFailure;
|
||||
import org.thingsboard.server.common.data.job.task.Task;
|
||||
import org.thingsboard.server.common.data.job.task.TaskResult;
|
||||
|
||||
|
||||
@ -30,8 +30,8 @@ import org.thingsboard.server.common.data.job.Job;
|
||||
import org.thingsboard.server.common.data.job.JobResult;
|
||||
import org.thingsboard.server.common.data.job.JobStatus;
|
||||
import org.thingsboard.server.common.data.job.JobType;
|
||||
import org.thingsboard.server.common.data.job.task.DummyTask.DummyTaskFailure;
|
||||
import org.thingsboard.server.common.data.job.task.DummyTaskResult;
|
||||
import org.thingsboard.server.common.data.job.task.DummyTaskResult.DummyTaskFailure;
|
||||
import org.thingsboard.server.common.data.page.PageLink;
|
||||
import org.thingsboard.server.controller.AbstractControllerTest;
|
||||
import org.thingsboard.server.dao.job.JobService;
|
||||
|
||||
@ -23,7 +23,6 @@ import lombok.experimental.SuperBuilder;
|
||||
import org.thingsboard.server.common.data.job.JobType;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@ -43,17 +42,13 @@ public class DummyTask extends Task<DummyTaskResult> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public DummyTaskResult toResult(boolean discarded, Optional<Throwable> error) {
|
||||
var result = DummyTaskResult.builder();
|
||||
result.discarded(discarded);
|
||||
if (error.isPresent()) {
|
||||
result.failure(DummyTaskFailure.builder()
|
||||
.error(error.map(Throwable::getMessage).orElse(null))
|
||||
.number(number)
|
||||
.failAlways(failAlways)
|
||||
.build());
|
||||
}
|
||||
return result.build();
|
||||
public DummyTaskResult toFailed(Throwable error) {
|
||||
return DummyTaskResult.failed(this, error);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DummyTaskResult toDiscarded() {
|
||||
return DummyTaskResult.discarded();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -61,15 +56,4 @@ public class DummyTask extends Task<DummyTaskResult> {
|
||||
return JobType.DUMMY;
|
||||
}
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@SuperBuilder
|
||||
public static class DummyTaskFailure extends TaskFailure { // todo: do we need separate structure?
|
||||
|
||||
private int number;
|
||||
private boolean failAlways;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -20,7 +20,6 @@ import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
import org.thingsboard.server.common.data.job.JobType;
|
||||
import org.thingsboard.server.common.data.job.task.DummyTask.DummyTaskFailure;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ -28,21 +27,43 @@ import org.thingsboard.server.common.data.job.task.DummyTask.DummyTaskFailure;
|
||||
@SuperBuilder
|
||||
public class DummyTaskResult extends TaskResult {
|
||||
|
||||
private static final DummyTaskResult SUCCESS = new DummyTaskResult(true);
|
||||
private static final DummyTaskResult SUCCESS = DummyTaskResult.builder().success(true).build();
|
||||
private static final DummyTaskResult DISCARDED = DummyTaskResult.builder().discarded(true).build();
|
||||
|
||||
private DummyTaskFailure failure;
|
||||
|
||||
public DummyTaskResult(boolean success) {
|
||||
super(success);
|
||||
}
|
||||
|
||||
public static DummyTaskResult success() {
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
public static DummyTaskResult failed(DummyTask task, Throwable error) {
|
||||
DummyTaskResult result = new DummyTaskResult();
|
||||
result.setFailure(DummyTaskFailure.builder()
|
||||
.error(error.getMessage())
|
||||
.number(task.getNumber())
|
||||
.failAlways(task.isFailAlways())
|
||||
.build());
|
||||
return result;
|
||||
}
|
||||
|
||||
public static DummyTaskResult discarded() {
|
||||
return DISCARDED;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JobType getJobType() {
|
||||
return JobType.DUMMY;
|
||||
}
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@SuperBuilder
|
||||
public static class DummyTaskFailure extends TaskFailure {
|
||||
|
||||
private int number;
|
||||
private boolean failAlways;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -27,8 +27,6 @@ import org.thingsboard.server.common.data.id.JobId;
|
||||
import org.thingsboard.server.common.data.id.TenantId;
|
||||
import org.thingsboard.server.common.data.job.JobType;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "jobType")
|
||||
@ -51,7 +49,9 @@ public abstract class Task<R extends TaskResult> {
|
||||
@JsonIgnore
|
||||
public abstract Object getKey();
|
||||
|
||||
public abstract R toResult(boolean discarded, Optional<Throwable> error);
|
||||
public abstract R toFailed(Throwable error);
|
||||
|
||||
public abstract R toDiscarded();
|
||||
|
||||
public abstract JobType getJobType();
|
||||
|
||||
|
||||
@ -39,10 +39,6 @@ public abstract class TaskResult {
|
||||
private boolean success;
|
||||
private boolean discarded;
|
||||
|
||||
public TaskResult(boolean success) {
|
||||
this.success = success;
|
||||
}
|
||||
|
||||
public abstract JobType getJobType();
|
||||
|
||||
}
|
||||
|
||||
@ -37,7 +37,6 @@ import org.thingsboard.server.queue.provider.TaskProcessorQueueFactory;
|
||||
import org.thingsboard.server.queue.util.AfterStartUp;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
@ -140,11 +139,13 @@ public abstract class TaskProcessor<T extends Task<R>, R extends TaskResult> {
|
||||
public abstract R process(T task) throws Exception;
|
||||
|
||||
private void reportTaskFailure(T task, Throwable error) {
|
||||
reportTaskResult(task, task.toResult(false, Optional.of(error)));
|
||||
R taskResult = task.toFailed(error);
|
||||
reportTaskResult(task, taskResult);
|
||||
}
|
||||
|
||||
private void reportTaskDiscarded(T task) {
|
||||
reportTaskResult(task, task.toResult(true, Optional.empty()));
|
||||
R taskResult = task.toDiscarded();
|
||||
reportTaskResult(task, taskResult);
|
||||
}
|
||||
|
||||
private void reportTaskResult(T task, R result) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user