summaryrefslogtreecommitdiffstats
path: root/daemon/src/main/java/org/openslx/taskmanager/main/Taskmanager.java
diff options
context:
space:
mode:
authorSimon Rettberg2016-12-01 15:13:57 +0100
committerSimon Rettberg2016-12-01 15:13:57 +0100
commit617fb197e7e5a7be033fb5114bc72669f440da27 (patch)
tree843ce0270c86e393de3873131e574bf069d818f8 /daemon/src/main/java/org/openslx/taskmanager/main/Taskmanager.java
parentDatagramPacket constructor doesn't throw SocketException in SE 8+ (diff)
downloadtaskman-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.java12
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.