From 33e3be55dc2d815cbd0208bf59d12a7e727f3105 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Sun, 9 Jun 2013 15:15:46 +0200 Subject: wip --- src/main/java/io/trygvis/queue/Task.java | 34 +++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) (limited to 'src/main/java/io/trygvis/queue/Task.java') 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 arguments; - public Task(long id, Long parent, String queue, Date scheduled, Date lastRun, int runCount, Date completed, List arguments) { + public Task(long id, Long parent, String queue, TaskState state, Date scheduled, Date lastRun, int runCount, Date completed, List 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 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 stringToArguments(String arguments) { -- cgit v1.2.3