Interface ProcessingTimeService

All Superinterfaces:
org.apache.flink.api.common.operators.ProcessingTimeService
All Known Subinterfaces:
TimerService
All Known Implementing Classes:
SystemProcessingTimeService

public interface ProcessingTimeService extends org.apache.flink.api.common.operators.ProcessingTimeService
Defines the current processing time and handles all related actions, such as register timers for tasks to be executed in the future.

The access to the time via getCurrentProcessingTime() is always available, regardless of whether the timer service has been shut down.

  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.apache.flink.api.common.operators.ProcessingTimeService

    org.apache.flink.api.common.operators.ProcessingTimeService.ProcessingTimeCallback
  • Method Summary

    Modifier and Type
    Method
    Description
    org.apache.flink.util.clock.Clock
    Returns Clock associated with this timer service.
    default long
     
    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.api.common.operators.ProcessingTimeService.ProcessingTimeCallback) or scheduleAtFixedRate(org.apache.flink.api.common.operators.ProcessingTimeService.ProcessingTimeCallback, long, long) a "mock" future and the "mock" future will be never completed.
    scheduleAtFixedRate(org.apache.flink.api.common.operators.ProcessingTimeService.ProcessingTimeCallback callback, long initialDelay, long period)
    Registers a task to be executed repeatedly at a fixed rate.
    scheduleWithFixedDelay(org.apache.flink.api.common.operators.ProcessingTimeService.ProcessingTimeCallback callback, long initialDelay, long period)
    Registers a task to be executed repeatedly with a fixed delay.

    Methods inherited from interface org.apache.flink.api.common.operators.ProcessingTimeService

    registerTimer
  • Method Details

    • getCurrentProcessingTime

      default long getCurrentProcessingTime()
      Specified by:
      getCurrentProcessingTime in interface org.apache.flink.api.common.operators.ProcessingTimeService
    • getClock

      org.apache.flink.util.clock.Clock getClock()
      Returns Clock associated with this timer service.
    • scheduleAtFixedRate

      ScheduledFuture<?> scheduleAtFixedRate(org.apache.flink.api.common.operators.ProcessingTimeService.ProcessingTimeCallback callback, long initialDelay, long period)
      Registers a task to be executed repeatedly at a fixed rate.

      This call behaves similar to ScheduledExecutor.scheduleAtFixedRate(Runnable, long, long, TimeUnit).

      Parameters:
      callback - to be executed after the initial delay and then after each period
      initialDelay - initial delay to start executing callback
      period - after the initial delay after which the callback is executed
      Returns:
      Scheduled future representing the task to be executed repeatedly
    • scheduleWithFixedDelay

      ScheduledFuture<?> scheduleWithFixedDelay(org.apache.flink.api.common.operators.ProcessingTimeService.ProcessingTimeCallback callback, long initialDelay, long period)
      Registers a task to be executed repeatedly with a fixed delay.

      This call behaves similar to ScheduledExecutor.scheduleWithFixedDelay(Runnable, long, long, TimeUnit).

      Parameters:
      callback - to be executed after the initial delay and then after each period
      initialDelay - initial delay to start executing callback
      period - after the initial delay after which the callback is executed
      Returns:
      Scheduled future representing the task to be executed repeatedly
    • 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.api.common.operators.ProcessingTimeService.ProcessingTimeCallback) or scheduleAtFixedRate(org.apache.flink.api.common.operators.ProcessingTimeService.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.