Class PollingBlockingTask
java.lang.Object
com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycle
com.inductiveautomation.ignition.common.execution.PollingBlockingTask
- Direct Known Subclasses:
- PerspectivePollingBlockingTask
Scaffolding for managing the execution of a blocking task that may need to poll or be executed on-demand.
- 
Nested Class SummaryNested Classes
- 
Field SummaryFields
- 
Constructor SummaryConstructorsConstructorDescriptionPollingBlockingTask(ScheduledExecutorService scheduler, ExecutorService executor, Runnable task, long rate, TimeUnit rateTimeUnit, String diagnosticId) 
- 
Method SummaryModifier and TypeMethodDescriptionprotected longDefault implementation returns the rate from the constructor, but provides a place for subclasses to re-define the rate on startup if necessary.protected voidprotected voidvoidvoidSubmits the task immediately if currently idle or scheduled.Methods inherited from class com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycleisRunning, shutdown, startup
- 
Field Details- 
LOG
 
- 
- 
Constructor Details- 
PollingBlockingTaskpublic PollingBlockingTask(ScheduledExecutorService scheduler, ExecutorService executor, Runnable task, long rate, TimeUnit rateTimeUnit, 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 Details- 
submitIfIdlepublic void submitIfIdle()Submits the task immediately if currently idle or scheduled.
- 
getInitialRateprotected 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.
- 
onStartupprotected void onStartup()- Specified by:
- onStartupin class- AbstractLifecycle
 
- 
onShutdownprotected void onShutdown()- Specified by:
- onShutdownin class- AbstractLifecycle
 
- 
setRate
 
-