Package org.apache.flink.runtime.rpc
Class RpcEndpoint.MainThreadExecutor
- java.lang.Object
-
- org.apache.flink.runtime.rpc.RpcEndpoint.MainThreadExecutor
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Executor
,ComponentMainThreadExecutor
,ScheduledExecutor
- Enclosing class:
- RpcEndpoint
protected static class RpcEndpoint.MainThreadExecutor extends Object implements ComponentMainThreadExecutor, Closeable
Executor which executes runnables in the main thread context.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.flink.runtime.concurrent.ComponentMainThreadExecutor
ComponentMainThreadExecutor.DummyComponentMainThreadExecutor
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
assertRunningInMainThread()
Returns true if the method was called in the thread of this executor.void
close()
Shutdown theScheduledThreadPoolExecutor
and remove all the pending tasks.void
execute(Runnable command)
ScheduledFuture<?>
schedule(Runnable command, long delay, TimeUnit unit)
The mainScheduledExecutor manages the task and sends it to the gateway after the given delay.<V> ScheduledFuture<V>
schedule(Callable<V> callable, long delay, TimeUnit unit)
The mainScheduledExecutor manages the given callable and sends it to the gateway after the given delay.ScheduledFuture<?>
scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)
Executes the given command periodically.ScheduledFuture<?>
scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit)
Executed the given command repeatedly with the given delay between the end of an execution and the start of the next execution.
-
-
-
Method Detail
-
schedule
public ScheduledFuture<?> schedule(Runnable command, long delay, TimeUnit unit)
The mainScheduledExecutor manages the task and sends it to the gateway after the given delay.- Specified by:
schedule
in interfaceScheduledExecutor
- Parameters:
command
- the task to execute in the futuredelay
- the time from now to delay the executionunit
- the time unit of the delay parameter- Returns:
- a ScheduledFuture representing the completion of the scheduled task
-
schedule
public <V> ScheduledFuture<V> schedule(Callable<V> callable, long delay, TimeUnit unit)
The mainScheduledExecutor manages the given callable and sends it to the gateway after the given delay.- Specified by:
schedule
in interfaceScheduledExecutor
- Type Parameters:
V
- result type of the callable- Parameters:
callable
- the callable to executedelay
- the time from now to delay the executionunit
- the time unit of the delay parameter- Returns:
- a ScheduledFuture which holds the future value of the given callable
-
scheduleAtFixedRate
public ScheduledFuture<?> scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)
Description copied from interface:ScheduledExecutor
Executes the given command periodically. The first execution is started after theinitialDelay
, the second execution is started afterinitialDelay + period
, the third afterinitialDelay + 2*period
and so on. The task is executed until either an execution fails, or the returnedScheduledFuture
is cancelled.- Specified by:
scheduleAtFixedRate
in interfaceScheduledExecutor
- Parameters:
command
- the task to be executed periodicallyinitialDelay
- the time from now until the first execution is triggeredperiod
- the time after which the next execution is triggeredunit
- the time unit of the delay and period parameter- Returns:
- a ScheduledFuture representing the periodic task. This future never completes unless an execution of the given task fails or if the future is cancelled
-
scheduleWithFixedDelay
public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit)
Description copied from interface:ScheduledExecutor
Executed the given command repeatedly with the given delay between the end of an execution and the start of the next execution. The task is executed repeatedly until either an exception occurs or if the returnedScheduledFuture
is cancelled.- Specified by:
scheduleWithFixedDelay
in interfaceScheduledExecutor
- Parameters:
command
- the task to execute repeatedlyinitialDelay
- the time from now until the first execution is triggereddelay
- the time between the end of the current and the start of the next executionunit
- the time unit of the initial delay and the delay parameter- Returns:
- a ScheduledFuture representing the repeatedly executed task. This future never completes unless the execution of the given task fails or if the future is cancelled
-
assertRunningInMainThread
public void assertRunningInMainThread()
Description copied from interface:ComponentMainThreadExecutor
Returns true if the method was called in the thread of this executor.- Specified by:
assertRunningInMainThread
in interfaceComponentMainThreadExecutor
-
close
public void close()
Shutdown theScheduledThreadPoolExecutor
and remove all the pending tasks.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
-
-