Class FileSystemTransporter

All Implemented Interfaces:
MetricConstants, MoleculerLifecycle

public class FileSystemTransporter extends Transporter
Filesystem-based transporter. It is primarily not for production use (its safe but much slower than other Transporters). Rather it can be considered as a reference implementation or a sample. With this Transporter multiple Service Brokers can communicate with each other through a common directory structure. Usage:
ServiceBroker broker = ServiceBroker.builder().nodeID("node1")
.transporter(new FileSystemTransporter("/temp")).build();
See Also:
  • Field Details

    • directory

      protected String directory
      Root directory of message files (eg. "/moleculer")
    • pollingDelay

      protected long pollingDelay
      Poll period in MILLISECONDS.
    • fileTimeout

      protected long fileTimeout
      Read timeout of request in MILLISECONDS (deleted request files after this limit).
    • storedFileNames

      protected int storedFileNames
      Max stored file names (per channel).
    • inputDirectories

    • outputDirectories

      protected HashMap<String, FileSystemTransporter.DirectoryHandler> outputDirectories
    • pollerProcess

      protected volatile ScheduledFuture<?> pollerProcess
      Cancelable timer of poller/cleanup process
    • timeoutProcess

      protected volatile ScheduledFuture<?> timeoutProcess
      Cancelable timer of poller/cleanup process
  • Constructor Details

    • FileSystemTransporter

      public FileSystemTransporter()
    • FileSystemTransporter

      public FileSystemTransporter(String directory)
    • FileSystemTransporter

      public FileSystemTransporter(String directory, long pollingDelay)
  • Method Details

    • started

      public void started(ServiceBroker broker) throws Exception
      Description copied from class: Transporter
      Initializes transporter instance.
      Specified by:
      started in interface MoleculerLifecycle
      Overrides:
      started in class Transporter
      Parameters:
      broker - parent ServiceBroker
      Throws:
      Exception
    • stopped

      public void stopped()
      Description copied from class: Transporter
      Closes transporter.
      Specified by:
      stopped in interface MoleculerLifecycle
      Overrides:
      stopped in class Transporter
    • pollerProcess

      protected void pollerProcess()
    • timeoutProcess

      protected void timeoutProcess()
    • connect

      public void connect()
      Specified by:
      connect in class Transporter
    • publish

      public void publish(String channel, io.datatree.Tree message)
      Specified by:
      publish in class Transporter
    • subscribe

      public io.datatree.Promise subscribe(String channel)
      Specified by:
      subscribe in class Transporter
    • getChannelDirectory

      protected File getChannelDirectory(String channel)
    • getDirectory

      public String getDirectory()
    • setDirectory

      public void setDirectory(String directory)
    • getPollingDelay

      public long getPollingDelay()
    • setPollingDelay

      public void setPollingDelay(long pollingDelay)
    • getFileTimeout

      public long getFileTimeout()
    • setFileTimeout

      public void setFileTimeout(long fileTimeout)
    • getStoredFileNames

      public int getStoredFileNames()
    • setStoredFileNames

      public void setStoredFileNames(int storedFileNames)