[New] Added ExecutionPolicy.delay(Duration, Runnable)
This commit is contained in:
parent
d2c3bd8c8f
commit
3727bdca70
|
@ -14,6 +14,16 @@ import li.strolch.model.activity.Action;
|
||||||
*/
|
*/
|
||||||
public interface DelayedExecutionTimer {
|
public interface DelayedExecutionTimer {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delays the execution of the given {@link Runnable} by the given milliseconds
|
||||||
|
*
|
||||||
|
* @param duration
|
||||||
|
* the duration in milliseconds before calling the {@link Runnable}
|
||||||
|
* @param runnable
|
||||||
|
* the action to call after the given delay
|
||||||
|
*/
|
||||||
|
void delay(long duration, Runnable runnable);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Completes the execution of the given {@link Action} {@link Locator} after the given duration in milliseconds
|
* Completes the execution of the given {@link Action} {@link Locator} after the given duration in milliseconds
|
||||||
*
|
*
|
||||||
|
|
|
@ -48,6 +48,11 @@ public class SimpleDurationExecutionTimer implements DelayedExecutionTimer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void delay(long duration, Runnable runnable) {
|
||||||
|
getExecutor().schedule(runnable, duration, TimeUnit.MILLISECONDS);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void execute(String realm, ComponentContainer container, Locator actionLocator, long duration) {
|
public void execute(String realm, ComponentContainer container, Locator actionLocator, long duration) {
|
||||||
synchronized (this.simulationTasks) {
|
synchronized (this.simulationTasks) {
|
||||||
|
|
|
@ -197,6 +197,19 @@ public abstract class ExecutionPolicy extends StrolchPolicy {
|
||||||
logger.info(msg);
|
logger.info(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delays the given {@link Runnable} by the given {@link Duration}
|
||||||
|
*
|
||||||
|
* @param duration
|
||||||
|
* the duration to delay
|
||||||
|
* @param runnable
|
||||||
|
* the action to delay
|
||||||
|
*/
|
||||||
|
public void delay(Duration duration, Runnable runnable) {
|
||||||
|
long delayMs = duration.toMillis();
|
||||||
|
getDelayedExecutionTimer().delay(delayMs, runnable);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method to delay toExecuted() call for this action by the given duration
|
* Method to delay toExecuted() call for this action by the given duration
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue