0

ScheduleManager: отложенное выполнение задач

This commit is contained in:
2021-01-03 00:22:55 +03:00
parent e36d0fd75d
commit bd91b19114
4 changed files with 53 additions and 24 deletions

View File

@@ -3,19 +3,31 @@ package ghast.scheduler;
import lombok.RequiredArgsConstructor;
import java.util.concurrent.Future;
import java.util.function.Supplier;
@RequiredArgsConstructor
public class JavaScheduleTask implements ScheduleTask {
private final Future<?> future;
private final Supplier<Future<?>> generator;
private Future<?> future;
@Override
public void start() {
if (future == null || future.isDone()) {
future = generator.get();
}
}
@Override
public boolean isCanceled() {
return future.isCancelled();
return future == null || future.isCancelled();
}
@Override
public void cancel() {
future.cancel(true);
if (future != null) {
future.cancel(true);
future = null;
}
}
}