aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/trygvis/queue/Task.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/trygvis/queue/Task.java')
-rwxr-xr-xsrc/main/java/io/trygvis/queue/Task.java34
1 files changed, 27 insertions, 7 deletions
diff --git a/src/main/java/io/trygvis/queue/Task.java b/src/main/java/io/trygvis/queue/Task.java
index 1af40d7..29e37ac 100755
--- a/src/main/java/io/trygvis/queue/Task.java
+++ b/src/main/java/io/trygvis/queue/Task.java
@@ -3,16 +3,26 @@ package io.trygvis.queue;
import java.util.Date;
import java.util.List;
+import static io.trygvis.queue.Task.TaskState.*;
import static java.util.Arrays.asList;
public class Task {
+ public enum TaskState {
+ NEW,
+ PROCESSING,
+ OK,
+ FAILED
+ }
+
private final long id;
public final Long parent;
public final String queue;
+ public final TaskState state;
+
public final Date scheduled;
public final Date lastRun;
@@ -23,10 +33,11 @@ public class Task {
public final List<String> arguments;
- public Task(long id, Long parent, String queue, Date scheduled, Date lastRun, int runCount, Date completed, List<String> arguments) {
+ public Task(long id, Long parent, String queue, TaskState state, Date scheduled, Date lastRun, int runCount, Date completed, List<String> arguments) {
this.id = id;
this.parent = parent;
this.queue = queue;
+ this.state = state;
this.scheduled = scheduled;
this.lastRun = lastRun;
this.runCount = runCount;
@@ -35,12 +46,16 @@ public class Task {
this.arguments = arguments;
}
- public Task registerRun() {
- return new Task(id, parent, queue, scheduled, new Date(), runCount + 1, completed, arguments);
+ public Task markProcessing() {
+ return new Task(id, parent, queue, PROCESSING, scheduled, new Date(), runCount + 1, completed, arguments);
}
- public Task registerComplete(Date completed) {
- return new Task(id, parent, queue, scheduled, lastRun, runCount, completed, arguments);
+ public Task markOk(Date completed) {
+ return new Task(id, parent, queue, OK, scheduled, lastRun, runCount, completed, arguments);
+ }
+
+ public Task markFailed(Date now) {
+ return new Task(id, parent, queue, FAILED, scheduled, lastRun, runCount, completed, arguments);
}
public String toString() {
@@ -48,6 +63,7 @@ public class Task {
"id=" + id +
", parent=" + parent +
", queue=" + queue +
+ ", state=" + state +
", scheduled=" + scheduled +
", lastRun=" + lastRun +
", runCount=" + runCount +
@@ -68,12 +84,16 @@ public class Task {
return completed != null;
}
+ public Task childTask(String name, Date scheduled, String... arguments) {
+ return new Task(0, id(), name, NEW, scheduled, null, 0, null, asList(arguments));
+ }
+
public static Task newTask(String name, Date scheduled, String... arguments) {
- return new Task(0, 0l, name, scheduled, null, 0, null, asList(arguments));
+ return new Task(0, null, name, NEW, scheduled, null, 0, null, asList(arguments));
}
public static Task newTask(String name, Date scheduled, List<String> arguments) {
- return new Task(0, 0l, name, scheduled, null, 0, null, arguments);
+ return new Task(0, null, name, NEW, scheduled, null, 0, null, arguments);
}
public static List<String> stringToArguments(String arguments) {