public abstract class AbstractScheduledEventExecutor extends AbstractEventExecutor
EventExecutor
s 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, submit
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
inEventLoop
isShuttingDown, shutdownGracefully, terminationFuture
protected 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
在接口中 EventExecutorGroup
schedule
在接口中 java.util.concurrent.ScheduledExecutorService
schedule
在类中 AbstractEventExecutor
public <V> ScheduledFuture<V> schedule(java.util.concurrent.Callable<V> callable, long delay, java.util.concurrent.TimeUnit unit)
schedule
在接口中 EventExecutorGroup
schedule
在接口中 java.util.concurrent.ScheduledExecutorService
schedule
在类中 AbstractEventExecutor
public ScheduledFuture<?> scheduleAtFixedRate(java.lang.Runnable command, long initialDelay, long period, java.util.concurrent.TimeUnit unit)
scheduleAtFixedRate
在接口中 EventExecutorGroup
scheduleAtFixedRate
在接口中 java.util.concurrent.ScheduledExecutorService
scheduleAtFixedRate
在类中 AbstractEventExecutor
public ScheduledFuture<?> scheduleWithFixedDelay(java.lang.Runnable command, long initialDelay, long delay, java.util.concurrent.TimeUnit unit)
scheduleWithFixedDelay
在接口中 EventExecutorGroup
scheduleWithFixedDelay
在接口中 java.util.concurrent.ScheduledExecutorService
scheduleWithFixedDelay
在类中 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