Interface MasterPlugin

All Superinterfaces:
io.vertigo.core.node.component.CoreComponent, io.vertigo.core.node.component.Plugin
All Known Implementing Classes:
RedisMasterPlugin, RestMasterPlugin

public interface MasterPlugin extends io.vertigo.core.node.component.Plugin
Master-Worker pattern. The master dispatch the works. The workers execute all the works.
Author:
npiedeloup, pchretien
  • Method Details

    • putWorkItem

      <R, W> void putWorkItem(WorkItem<R,W> workItem)
      Add a WorkItem to do
      Type Parameters:
      R - Result type
      W - Work type
      Parameters:
      workItem - Work item
    • pollResult

      WorkResult pollResult(String callerNodeId, int waitTimeSeconds)
      Wait for next result.
      Parameters:
      callerNodeId -
      waitTimeSeconds - wait result for x seconds
      Returns:
      Work result (null if none) : may be any result type
    • checkDeadNodesAndWorkItems

      io.vertigo.core.lang.Tuple<Set<String>,Set<String>> checkDeadNodesAndWorkItems(int maxRetrycount)
      Check for dead nodes and manage (retry) unfinished workItems.
      Parameters:
      maxRetrycount - max number of retry
      Returns:
      WorkIds retried, WorkId abandonned