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 Summary
Nested Classes -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionPollingBlockingTask(ScheduledExecutorService scheduler, ExecutorService executor, Runnable task, long rate, TimeUnit rateTimeUnit, String diagnosticId) -
Method Summary
Modifier 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.AbstractLifecycle
isRunning, shutdown, startup
-
Field Details
-
LOG
-
-
Constructor Details
-
PollingBlockingTask
public PollingBlockingTask(ScheduledExecutorService scheduler, ExecutorService executor, Runnable task, long rate, TimeUnit rateTimeUnit, String diagnosticId) - Parameters:
scheduler- No blocking work will be done on this schedulerexecutor- Blocking work will be done on this executortask- The task to execute, blocking is acceptablerate- 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 wheneversubmitIfIdle()is called.rateTimeUnit- Time unit for the rate.diagnosticId- Will be set during task execution using MDC as "task-id" key
-
-
Method Details
-
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. -
onStartup
protected void onStartup()- Specified by:
onStartupin classAbstractLifecycle
-
onShutdown
protected void onShutdown()- Specified by:
onShutdownin classAbstractLifecycle
-
setRate
-