Class RestWorkersPlugin

java.lang.Object
io.vertigo.stella.plugins.work.rest.workers.RestWorkersPlugin
All Implemented Interfaces:
io.vertigo.core.node.component.CoreComponent, io.vertigo.core.node.component.Plugin, WorkersPlugin

public final class RestWorkersPlugin extends Object implements WorkersPlugin
Implémentation de DistributedWorkManager, pour l'execution de travaux par des Workers distant. Cette implémentation représente la partie client qui se déploie en ferme. 1- contacte la partie serveur pour récupérer les travaux qu'elle sait gérer, 2- execute la tache en synchrone exclusivement 3- retourne le résultat au serveur
Author:
npiedeloup, pchretien
  • Constructor Details

    • RestWorkersPlugin

      @Inject public RestWorkersPlugin(String serverUrl, int timeoutSeconds, io.vertigo.commons.codec.CodecManager codecManager)
      Constructeur.
      Parameters:
      serverUrl - Url du serveur
      timeoutSeconds - Timeout en seconde des connections vers le serveur (doit être > au timeoutSeconds du serveur)
      codecManager - Manager d'encodage/decodage
  • Method Details

    • pollWorkItem

      public <WR, W> WorkItem<WR,W> pollWorkItem(String nodeId, String workType)
      Polling workitem.
      Specified by:
      pollWorkItem in interface WorkersPlugin
      Type Parameters:
      WR - result
      W - work
      Parameters:
      workType - Type de tache
      Returns:
      Workitem or null (if timeout)
    • putResult

      public <R> void putResult(String callerNodeId, String nodeId, String workType, String workId, R result, Throwable error)
      Send result or error if execution failed
      Specified by:
      putResult in interface WorkersPlugin
      Type Parameters:
      R - result
      Parameters:
      workId - WorkId
      result - Result (not null if execution succeeded)
      error - Error ( not null if execution failed)
    • putStart

      public void putStart(String nodeId, String workType, String workId)
      Specified by:
      putStart in interface WorkersPlugin
    • heartBeat

      public void heartBeat(String nodeId, Set<String> workTypes)
      Specified by:
      heartBeat in interface WorkersPlugin