diff options
author | Simon Rettberg | 2016-12-01 15:13:57 +0100 |
---|---|---|
committer | Simon Rettberg | 2016-12-01 15:13:57 +0100 |
commit | 617fb197e7e5a7be033fb5114bc72669f440da27 (patch) | |
tree | 843ce0270c86e393de3873131e574bf069d818f8 /daemon/src/main/java/org/openslx/taskmanager/main/Taskmanager.java | |
parent | DatagramPacket constructor doesn't throw SocketException in SE 8+ (diff) | |
download | taskman-lite-617fb197e7e5a7be033fb5114bc72669f440da27.tar.gz taskman-lite-617fb197e7e5a7be033fb5114bc72669f440da27.tar.xz taskman-lite-617fb197e7e5a7be033fb5114bc72669f440da27.zip |
Add cancellable tasks, optional response payload compression
Diffstat (limited to 'daemon/src/main/java/org/openslx/taskmanager/main/Taskmanager.java')
-rw-r--r-- | daemon/src/main/java/org/openslx/taskmanager/main/Taskmanager.java | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/daemon/src/main/java/org/openslx/taskmanager/main/Taskmanager.java b/daemon/src/main/java/org/openslx/taskmanager/main/Taskmanager.java index 69c190a..b4df03d 100644 --- a/daemon/src/main/java/org/openslx/taskmanager/main/Taskmanager.java +++ b/daemon/src/main/java/org/openslx/taskmanager/main/Taskmanager.java @@ -12,6 +12,7 @@ import java.util.concurrent.TimeUnit; import org.apache.log4j.Logger; import org.openslx.taskmanager.Global; import org.openslx.taskmanager.api.AbstractTask; +import org.openslx.taskmanager.api.CancellableTask; import org.openslx.taskmanager.api.FinishCallback; import org.openslx.taskmanager.api.TaskStatus; import org.openslx.taskmanager.util.ClassLoaderHack; @@ -131,6 +132,17 @@ public class Taskmanager implements FinishCallback, Runnable task.release(); } + public TaskStatus cancelTask( String taskId ) + { + final AbstractTask task = instances.get( taskId ); + if ( task == null ) + return TaskStatus.ts_noSuchInstance; + if ( !(task instanceof CancellableTask) ) + return TaskStatus.ts_notCancellable; + ( (CancellableTask)task ).cancel(); + return task.getStatus(); + } + /** * Wakes up the Taskmanager's mainloop so it will check if any of the current task instances * is waiting for execution. |