From 66bf65a49dba5df6ffbf865bc6cac9afba41ead1 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Fri, 28 Dec 2018 11:55:26 +0000
Subject: [PATCH] Job queueing...
---
borgbutler-core/src/main/java/de/micromata/borgbutler/jobs/AbstractJob.java | 19 +++++++++++++++----
1 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/jobs/AbstractJob.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/jobs/AbstractJob.java
index 5827495..2670b98 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/jobs/AbstractJob.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/jobs/AbstractJob.java
@@ -12,11 +12,11 @@
public abstract class AbstractJob<T> {
private Logger logger = LoggerFactory.getLogger(AbstractJob.class);
- public enum Status {DONE, RUNNING, QUEUED, STOPPED, FAILED}
+ public enum Status {DONE, RUNNING, QUEUED, CANCELLED, FAILED}
@Getter
@Setter
- private boolean stopRequested;
+ private boolean cancelledRequested;
@Getter
@Setter(AccessLevel.PACKAGE)
@@ -31,7 +31,18 @@
@Setter(AccessLevel.PACKAGE)
private Future<T> future;
- public T waitForResult() {
+ public void cancel() {
+ if (this.getStatus() == Status.QUEUED) {
+ this.status = Status.CANCELLED;
+ }
+ this.cancelledRequested = true;
+ }
+
+ /**
+ * Waits for and gets the result.
+ * @return
+ */
+ public T getResult() {
try {
return future.get();
} catch (InterruptedException | ExecutionException ex) {
@@ -51,7 +62,7 @@
* @return true, if the job is done, stopped or failed. Otherwise false (if job is running or queued).
*/
public boolean isFinished() {
- if (status == Status.DONE || status == Status.STOPPED || status == Status.FAILED) {
+ if (status == Status.DONE || status == Status.CANCELLED || status == Status.FAILED) {
return true;
}
return false;
--
Gitblit v1.10.0