Class BasicExecutionEngine
java.lang.Object
com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine
- All Implemented Interfaces:
 ExecutionManager
The ExecutionEngine is a wrapper around a scheduled executor service. Callers are able to create named tasks, and
 this class keeps track of associating those names with the ScheduledFutures that represent the actual execution
 tasks.
- 
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected classclass - 
Constructor Summary
ConstructorsConstructorDescriptionBasicExecutionEngine(int threadCount, String name) BasicExecutionEngine(int threadCount, String name, boolean daemon) BasicExecutionEngine(int threadCount, String name, ThreadFactory threadFactory)  - 
Method Summary
Modifier and TypeMethodDescriptionvoidexecuteOnce(Runnable command) Executes a runnable one time as soon as possible.voidexecuteOnce(Runnable command, long delay) Excutes a runnable one time after a delay, specified in millisecondsexecuteOnce(Runnable command, long delay, TimeUnit unit) Executes a runnable after a fixed delaygetName()voidModifies the execution rate of the given execution unit.voidmodifyFixedRate(String owner, String name, Runnable command, int newRate, TimeUnit newUnit) voidregister(String owner, String name, SelfSchedulingRunnable command) Registers a self scheduling command to be executed.voidRegisters a command to be executing repeatedly at the specified rate.voidRegisters a command to be executing repeatedly at the specified rate.voidregisterAtFixedRate(String owner, String name, Runnable command, int rate, TimeUnit unit) Registers a command to be executed with a fixed rate rather than a fixed delay.voidregisterAtFixedRateWithInitialDelay(String owner, String name, Runnable command, int rate, TimeUnit unit, int initialDelay) Registers a command to be executed with a fixed rate after some initial delay.voidregisterWithInitialDelay(String owner, String name, Runnable command, int rate, int initialDelay) Registers a command to be executing repeatedly at the specified rate with an initial delay.voidregisterWithInitialDelay(String owner, String name, Runnable command, int rate, TimeUnit unit, int initialDelay) Registers a command to be executing repeatedly at the specified rate with an initial delay.protected voidscheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) Schedules a runnable to execute with a fixed delay, and after an initial delay, much likeExecutionManager.registerWithInitialDelay(String, String, Runnable, int, TimeUnit, int).voidshutdown()Stops all execution gracefully.protected voidsynchedUpdateTaskMap(String owner, String name, ScheduledFuture<?> future) Updates the task map.toString()voidunRegister(String owner, String name) De-registers the execution unit.voidunRegister(String owner, String name, boolean interrupt) De-registers the execution unit.voidunRegisterAll(String owner) Unregisters all tasks for a given owner.voidunSchedule(String taskId)  
- 
Constructor Details
- 
BasicExecutionEngine
public BasicExecutionEngine() - 
BasicExecutionEngine
 - 
BasicExecutionEngine
 - 
BasicExecutionEngine
 
 - 
 - 
Method Details
- 
getName
 - 
shutdown
public void shutdown()Description copied from interface:ExecutionManagerStops all execution gracefully.- Specified by:
 shutdownin interfaceExecutionManager
 - 
schedule
public String schedule(String taskName, Runnable task, String cronPattern) throws it.sauronsoftware.cron4j.InvalidPatternException - Throws:
 it.sauronsoftware.cron4j.InvalidPatternException
 - 
unSchedule
 - 
register
Description copied from interface:ExecutionManagerRegisters a command to be executing repeatedly at the specified rate. If the name is already registered, the existing execution unit will be modified.- Specified by:
 registerin interfaceExecutionManager- Parameters:
 owner- name of the "owner"- just a string qualifier for the command name.name- identifier used in conjunction with the owner to identify the command.command- Runnable to be called at the specified rate.rate- The amount of time to wait in between invocations of the command, in milliseconds.
 - 
register
Description copied from interface:ExecutionManagerRegisters a command to be executing repeatedly at the specified rate. If the name is already registered, the existing execution unit will be modified.- Specified by:
 registerin interfaceExecutionManager- Parameters:
 owner- name of the "owner"- just a string qualifier for the command name.name- identifier used in conjunction with the owner to identify the command.command- Runnable to be called at the specified rate.
 - 
registerAtFixedRate
public void registerAtFixedRate(String owner, String name, Runnable command, int rate, TimeUnit unit) Description copied from interface:ExecutionManagerRegisters a command to be executed with a fixed rate rather than a fixed delay.- Specified by:
 registerAtFixedRatein interfaceExecutionManager
 - 
registerAtFixedRateWithInitialDelay
public void registerAtFixedRateWithInitialDelay(String owner, String name, Runnable command, int rate, TimeUnit unit, int initialDelay) Description copied from interface:ExecutionManagerRegisters a command to be executed with a fixed rate after some initial delay.- Specified by:
 registerAtFixedRateWithInitialDelayin interfaceExecutionManager
 - 
synchedUpdateTaskMap
Updates the task map. Task map MUST be synchronized before calling this. - 
registerWithInitialDelay
public void registerWithInitialDelay(String owner, String name, Runnable command, int rate, int initialDelay) Description copied from interface:ExecutionManagerRegisters a command to be executing repeatedly at the specified rate with an initial delay.- Specified by:
 registerWithInitialDelayin interfaceExecutionManager
 - 
registerWithInitialDelay
public void registerWithInitialDelay(String owner, String name, Runnable command, int rate, TimeUnit unit, int initialDelay) Description copied from interface:ExecutionManagerRegisters a command to be executing repeatedly at the specified rate with an initial delay.- Specified by:
 registerWithInitialDelayin interfaceExecutionManager
 - 
modify
Modifies the execution rate of the given execution unit. Basically just unregisters and registers. Can also be used to modify the Runnable associated with the name. - 
modifyFixedRate
 - 
unRegister
De-registers the execution unit. If the unit is in the process of running, it will be interrupted.- Specified by:
 unRegisterin interfaceExecutionManager
 - 
unRegister
De-registers the execution unit.- Specified by:
 unRegisterin interfaceExecutionManager- Parameters:
 interrupt- Interrupts the execution if it is currently occurring. If false, waits for completion.
 - 
unRegisterAll
Unregisters all tasks for a given owner.- Specified by:
 unRegisterAllin interfaceExecutionManager
 - 
executeOnce
Executes a runnable one time as soon as possible.- Specified by:
 executeOncein interfaceExecutionManager
 - 
executeOnce
Description copied from interface:ExecutionManagerExcutes a runnable one time after a delay, specified in milliseconds- Specified by:
 executeOncein interfaceExecutionManager
 - 
executeOnce
public ScheduledFuture<?> executeOnce(Runnable command, long delay, TimeUnit unit) throws RejectedExecutionException Executes a runnable after a fixed delay- Specified by:
 executeOncein interfaceExecutionManager- Throws:
 RejectedExecutionException
 - 
register
Description copied from interface:ExecutionManagerRegisters a self scheduling command to be executed. Self scheduling commands provide their own execution delay, which can change from exec to exec.- Specified by:
 registerin interfaceExecutionManager
 - 
scheduleNext
 - 
scheduleWithFixedDelay
public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) Description copied from interface:ExecutionManagerSchedules a runnable to execute with a fixed delay, and after an initial delay, much likeExecutionManager.registerWithInitialDelay(String, String, Runnable, int, TimeUnit, int). The difference is that this method returns a ScheduledFuture that can be used to cancel the task.- Specified by:
 scheduleWithFixedDelayin interfaceExecutionManager
 - 
getTaskOwners
 - 
getTasks
 - 
toString
 
 -