Class PollingBlockingTask

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected static LoggerEx LOG  
    • Constructor Summary

      Constructors 
      Constructor Description
      PollingBlockingTask​(java.util.concurrent.ScheduledExecutorService scheduler, java.util.concurrent.ExecutorService executor, java.lang.Runnable task, long rate, java.util.concurrent.TimeUnit rateTimeUnit, java.lang.String diagnosticId)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected long getInitialRate()
      Default implementation returns the rate from the constructor, but provides a place for subclasses to re-define the rate on startup if necessary.
      protected void onShutdown()  
      protected void onStartup()  
      void setRate​(long rate, java.util.concurrent.TimeUnit unit)  
      void submitIfIdle()
      Submits the task immediately if currently idle or scheduled.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • LOG

        protected static final LoggerEx LOG
    • Constructor Detail

      • PollingBlockingTask

        public PollingBlockingTask​(java.util.concurrent.ScheduledExecutorService scheduler,
                                   java.util.concurrent.ExecutorService executor,
                                   java.lang.Runnable task,
                                   long rate,
                                   java.util.concurrent.TimeUnit rateTimeUnit,
                                   java.lang.String diagnosticId)
        Parameters:
        scheduler - No blocking work will be done on this scheduler
        executor - Blocking work will be done on this executor
        task - The task to execute, blocking is acceptable
        rate - If positive, the task will be executed once on startup, and then repeatedly with this amount of time as a delay between executions. If zero or less, will be executed once on startup, and again whenever submitIfIdle() is called.
        rateTimeUnit - Time unit for the rate.
        diagnosticId - Will be set during task execution using MDC as "task-id" key
    • Method Detail

      • submitIfIdle

        public void submitIfIdle()
        Submits the task immediately if currently idle or scheduled.
      • getInitialRate

        protected long getInitialRate()
        Default implementation returns the rate from the constructor, but provides a place for subclasses to re-define the rate on startup if necessary.
      • setRate

        public void setRate​(long rate,
                            java.util.concurrent.TimeUnit unit)