Class AbstractImmediateWorker

java.lang.Object
io.openems.common.worker.AbstractWorker
io.openems.common.worker.AbstractImmediateWorker
Direct Known Subclasses:
AbstractMergePointsWorker, MergePointsWorker, ModbusWorker, OneWireTaskWorker, Optimizer, RecordWorker, SplitDataWorker

public abstract class AbstractImmediateWorker extends AbstractWorker
Defines a generic Worker Thread.

The business logic of the Worker is inside the forever() method. It is executed always called immediately without any delay.

  • Constructor Details

    • AbstractImmediateWorker

      public AbstractImmediateWorker()
  • Method Details

    • activate

      public void activate(String name)
      Description copied from class: AbstractWorker
      Initializes the worker and starts the worker thread.
      Overrides:
      activate in class AbstractWorker
      Parameters:
      name - the name of the worker thread
    • deactivate

      public void deactivate()
      Description copied from class: AbstractWorker
      Stops the worker thread.
      Overrides:
      deactivate in class AbstractWorker
    • getCycleTime

      protected final int getCycleTime()
      Description copied from class: AbstractWorker
      Gets the cycleTime of this worker in [ms].
      • > 0 sets the minimum execution time of one Cycle
      • = 0 never wait between two consecutive executions of forever()
      • < 0 causes the Cycle to sleep forever until 'triggerNextRun()' is called
      Specified by:
      getCycleTime in class AbstractWorker
      Returns:
      the cycleTime
    • forever

      protected abstract void forever() throws Throwable
      Description copied from class: AbstractWorker
      This method is called in a loop forever until the Thread gets interrupted.
      Specified by:
      forever in class AbstractWorker
      Throws:
      Throwable