use dropwizard built-in executor service facilities

This commit is contained in:
Athou
2014-10-22 15:36:21 +02:00
parent 7e158ed9b9
commit b71434acf6
5 changed files with 38 additions and 65 deletions

View File

@@ -0,0 +1,32 @@
package com.commafeed.backend.task;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public abstract class ScheduledTask {
protected abstract void run();
protected abstract long getInitialDelay();
protected abstract long getPeriod();
protected abstract TimeUnit getTimeUnit();
public void register(ScheduledExecutorService executor) {
Runnable runnable = new Runnable() {
@Override
public void run() {
try {
ScheduledTask.this.run();
} catch (Exception e) {
log.error(e.getMessage(), e);
}
}
};
executor.scheduleWithFixedDelay(runnable, getInitialDelay(), getPeriod(), getTimeUnit());
}
}