Class 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 Detail

      • RestWorkersPlugin

        @Inject
        public RestWorkersPlugin​(String serverUrl,
                                 int timeoutSeconds,
                                 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 Detail

      • 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
        workType - Type de tache
        Returns:
        Workitem or null (if timeout)
      • putResult

        public <R> void putResult​(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)