public abstract class AbstractScheduledEventExecutor extends AbstractEventExecutor
EventExecutors that want to support scheduling.AbstractEventExecutor.LazyRunnable| 限定符 | 构造器和说明 |
|---|---|
protected |
AbstractScheduledEventExecutor() |
protected |
AbstractScheduledEventExecutor(EventExecutorGroup parent) |
| 限定符和类型 | 方法和说明 |
|---|---|
protected boolean |
afterScheduledTaskSubmitted(long deadlineNanos)
|
protected boolean |
beforeScheduledTaskSubmitted(long deadlineNanos)
Called from arbitrary non-
EventExecutor threads prior to scheduled task submission. |
protected void |
cancelScheduledTasks()
Cancel all scheduled tasks.
|
protected static long |
deadlineToDelayNanos(long deadlineNanos)
Given an arbitrary deadline
deadlineNanos, calculate the number of nano seconds from now
deadlineNanos would expire. |
protected long |
getCurrentTimeNanos()
Get the current time in nanoseconds by this executor's clock.
|
protected boolean |
hasScheduledTasks()
Returns
true if a scheduled task is ready for processing. |
protected static long |
initialNanoTime()
The initial value used for delay and computations based upon a monatomic time source.
|
protected static long |
nanoTime()
已过时。
Use the non-static
getCurrentTimeNanos() instead. |
protected long |
nextScheduledTaskDeadlineNanos()
Return the deadline (in nanoseconds) when the next scheduled task is ready to be run or
-1
if no task is scheduled. |
protected long |
nextScheduledTaskNano()
Return the nanoseconds until the next scheduled task is ready to be run or
-1 if no task is scheduled. |
protected java.lang.Runnable |
pollScheduledTask() |
protected java.lang.Runnable |
pollScheduledTask(long nanoTime)
Return the
Runnable which is ready to be executed with the given nanoTime. |
<V> ScheduledFuture<V> |
schedule(java.util.concurrent.Callable<V> callable,
long delay,
java.util.concurrent.TimeUnit unit) |
ScheduledFuture<?> |
schedule(java.lang.Runnable command,
long delay,
java.util.concurrent.TimeUnit unit) |
ScheduledFuture<?> |
scheduleAtFixedRate(java.lang.Runnable command,
long initialDelay,
long period,
java.util.concurrent.TimeUnit unit) |
ScheduledFuture<?> |
scheduleWithFixedDelay(java.lang.Runnable command,
long initialDelay,
long delay,
java.util.concurrent.TimeUnit unit) |
protected void |
validateScheduled(long amount,
java.util.concurrent.TimeUnit unit)
已过时。
will be removed in the future.
|
inEventLoop, iterator, lazyExecute, newFailedFuture, newProgressivePromise, newPromise, newSucceededFuture, newTaskFor, newTaskFor, next, parent, runTask, safeExecute, shutdown, shutdownGracefully, shutdownNow, submit, submit, submitclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitinEventLoopisShuttingDown, shutdownGracefully, terminationFutureprotected AbstractScheduledEventExecutor()
protected AbstractScheduledEventExecutor(EventExecutorGroup parent)
protected long getCurrentTimeNanos()
System.nanoTime()
for two reasons:
nanoTime@Deprecated protected static long nanoTime()
getCurrentTimeNanos() instead.protected static long deadlineToDelayNanos(long deadlineNanos)
deadlineNanos, calculate the number of nano seconds from now
deadlineNanos would expire.deadlineNanos - An arbitrary deadline in nano seconds.deadlineNanos would expire.protected static long initialNanoTime()
protected void cancelScheduledTasks()
AbstractEventExecutor.inEventLoop() is true.protected final java.lang.Runnable pollScheduledTask()
pollScheduledTask(long)protected final java.lang.Runnable pollScheduledTask(long nanoTime)
Runnable which is ready to be executed with the given nanoTime.
You should use getCurrentTimeNanos() to retrieve the correct nanoTime.protected final long nextScheduledTaskNano()
-1 if no task is scheduled.protected final long nextScheduledTaskDeadlineNanos()
-1
if no task is scheduled.protected final boolean hasScheduledTasks()
true if a scheduled task is ready for processing.public ScheduledFuture<?> schedule(java.lang.Runnable command, long delay, java.util.concurrent.TimeUnit unit)
schedule 在接口中 EventExecutorGroupschedule 在接口中 java.util.concurrent.ScheduledExecutorServiceschedule 在类中 AbstractEventExecutorpublic <V> ScheduledFuture<V> schedule(java.util.concurrent.Callable<V> callable, long delay, java.util.concurrent.TimeUnit unit)
schedule 在接口中 EventExecutorGroupschedule 在接口中 java.util.concurrent.ScheduledExecutorServiceschedule 在类中 AbstractEventExecutorpublic ScheduledFuture<?> scheduleAtFixedRate(java.lang.Runnable command, long initialDelay, long period, java.util.concurrent.TimeUnit unit)
scheduleAtFixedRate 在接口中 EventExecutorGroupscheduleAtFixedRate 在接口中 java.util.concurrent.ScheduledExecutorServicescheduleAtFixedRate 在类中 AbstractEventExecutorpublic ScheduledFuture<?> scheduleWithFixedDelay(java.lang.Runnable command, long initialDelay, long delay, java.util.concurrent.TimeUnit unit)
scheduleWithFixedDelay 在接口中 EventExecutorGroupscheduleWithFixedDelay 在接口中 java.util.concurrent.ScheduledExecutorServicescheduleWithFixedDelay 在类中 AbstractEventExecutor@Deprecated
protected void validateScheduled(long amount,
java.util.concurrent.TimeUnit unit)
protected boolean beforeScheduledTaskSubmitted(long deadlineNanos)
EventExecutor threads prior to scheduled task submission.
Returns true if the EventExecutor thread should be woken immediately to
process the scheduled task (if not already awake).
If false is returned, afterScheduledTaskSubmitted(long) will be called with
the same value after the scheduled task is enqueued, providing another opportunity
to wake the EventExecutor thread if required.
deadlineNanos - deadline of the to-be-scheduled task
relative to getCurrentTimeNanos()true if the EventExecutor thread should be woken, false otherwiseprotected boolean afterScheduledTaskSubmitted(long deadlineNanos)
beforeScheduledTaskSubmitted(long). Called only after that method returns false.deadlineNanos - relative to getCurrentTimeNanos()true if the EventExecutor thread should be woken, false otherwise