@Internal public class SystemProcessingTimeService extends Object implements TimerService
TimerService which assigns as current processing time the result of calling
System.currentTimeMillis() and registers timers using a ScheduledThreadPoolExecutor.| Modifier and Type | Method and Description |
|---|---|
protected void |
finalize() |
long |
getCurrentProcessingTime()
Returns the current processing time.
|
boolean |
isTerminated()
Returns true if the service has been shut down, false otherwise.
|
CompletableFuture<Void> |
quiesce()
This method puts the service into a state where it does not register new timers, but
returns for each call to
ProcessingTimeService.registerTimer(long, org.apache.flink.streaming.runtime.tasks.ProcessingTimeCallback) or ProcessingTimeService.scheduleAtFixedRate(org.apache.flink.streaming.runtime.tasks.ProcessingTimeCallback, long, long) a "mock"
future and the "mock" future will be never completed. |
ScheduledFuture<?> |
registerTimer(long timestamp,
ProcessingTimeCallback callback)
Registers a task to be executed no sooner than time
timestamp, but without strong
guarantees of order. |
ScheduledFuture<?> |
scheduleAtFixedRate(ProcessingTimeCallback callback,
long initialDelay,
long period)
Registers a task to be executed repeatedly at a fixed rate.
|
ScheduledFuture<?> |
scheduleWithFixedDelay(ProcessingTimeCallback callback,
long initialDelay,
long period)
Registers a task to be executed repeatedly with a fixed delay.
|
void |
shutdownService()
Shuts down and clean up the timer service provider hard and immediately.
|
boolean |
shutdownServiceUninterruptible(long timeoutMs)
Shuts down and clean up the timer service provider hard and immediately.
|
public long getCurrentProcessingTime()
ProcessingTimeServicegetCurrentProcessingTime in interface ProcessingTimeServicepublic ScheduledFuture<?> registerTimer(long timestamp, ProcessingTimeCallback callback)
timestamp, but without strong
guarantees of order.registerTimer in interface ProcessingTimeServicetimestamp - Time when the task is to be enabled (in processing time)callback - The task to be executedpublic ScheduledFuture<?> scheduleAtFixedRate(ProcessingTimeCallback callback, long initialDelay, long period)
ProcessingTimeServiceThis call behaves similar to
ScheduledExecutor.scheduleAtFixedRate(Runnable, long, long, TimeUnit).
scheduleAtFixedRate in interface ProcessingTimeServicecallback - to be executed after the initial delay and then after each periodinitialDelay - initial delay to start executing callbackperiod - after the initial delay after which the callback is executedpublic ScheduledFuture<?> scheduleWithFixedDelay(ProcessingTimeCallback callback, long initialDelay, long period)
ProcessingTimeServiceThis call behaves similar to
ScheduledExecutor.scheduleWithFixedDelay(Runnable, long, long, TimeUnit).
scheduleWithFixedDelay in interface ProcessingTimeServicecallback - to be executed after the initial delay and then after each periodinitialDelay - initial delay to start executing callbackperiod - after the initial delay after which the callback is executedpublic boolean isTerminated()
TimerServiceisTerminated in interface TimerServicepublic CompletableFuture<Void> quiesce()
ProcessingTimeServiceProcessingTimeService.registerTimer(long, org.apache.flink.streaming.runtime.tasks.ProcessingTimeCallback) or ProcessingTimeService.scheduleAtFixedRate(org.apache.flink.streaming.runtime.tasks.ProcessingTimeCallback, long, long) a "mock"
future and the "mock" future will be never completed. Furthermore, the timers registered
before are prevented from firing, but the timers in running are allowed to finish.
If no timer is running, the quiesce-completed future is immediately completed and returned. Otherwise, the future returned will be completed when all running timers have finished.
quiesce in interface ProcessingTimeServicepublic void shutdownService()
TimerServiceProcessingTimeService.registerTimer(long, ProcessingTimeCallback)
will result in a hard exception.shutdownService in interface TimerServicepublic boolean shutdownServiceUninterruptible(long timeoutMs)
TimerServiceProcessingTimeService.registerTimer(long, ProcessingTimeCallback)
will result in a hard exception. This call cannot be interrupted and will block until the shutdown is completed
or the timeout is exceeded.shutdownServiceUninterruptible in interface TimerServicetimeoutMs - timeout for blocking on the service shutdown in milliseconds.Copyright © 2014–2020 The Apache Software Foundation. All rights reserved.