Search in sources :

Example 1 with TriggerRunnable

use of org.apache.openejb.threads.task.TriggerRunnable in project tomee by apache.

the class ManagedScheduledExecutorServiceImpl method schedule.

@Override
public ScheduledFuture<?> schedule(final Runnable runnable, final Trigger trigger) {
    final Date taskScheduledTime = new Date();
    final AtomicReference<Future<?>> futureHandle = new AtomicReference<Future<?>>();
    final TriggerRunnable wrapper = new TriggerRunnable(this, runnable, new CURunnable(runnable), trigger, taskScheduledTime, getTaskId(runnable), AtomicReference.class.cast(futureHandle));
    final ScheduledFuture<?> future = delegate.schedule(wrapper, trigger.getNextRunTime(wrapper.getLastExecution(), taskScheduledTime).getTime() - nowMs(), TimeUnit.MILLISECONDS);
    return initTriggerScheduledFuture(runnable, AtomicReference.class.cast(futureHandle), wrapper, ScheduledFuture.class.cast(future));
}
Also used : CURunnable(org.apache.openejb.threads.task.CURunnable) CUScheduleFuture(org.apache.openejb.threads.future.CUScheduleFuture) ScheduledFuture(java.util.concurrent.ScheduledFuture) Future(java.util.concurrent.Future) AtomicReference(java.util.concurrent.atomic.AtomicReference) Date(java.util.Date) TriggerRunnable(org.apache.openejb.threads.task.TriggerRunnable) ScheduledFuture(java.util.concurrent.ScheduledFuture)

Aggregations

Date (java.util.Date)1 Future (java.util.concurrent.Future)1 ScheduledFuture (java.util.concurrent.ScheduledFuture)1 AtomicReference (java.util.concurrent.atomic.AtomicReference)1 CUScheduleFuture (org.apache.openejb.threads.future.CUScheduleFuture)1 CURunnable (org.apache.openejb.threads.task.CURunnable)1 TriggerRunnable (org.apache.openejb.threads.task.TriggerRunnable)1