Class FileLockClusterService

java.lang.Object
org.apache.camel.support.service.BaseService
org.apache.camel.support.service.ServiceSupport
org.apache.camel.support.cluster.AbstractCamelClusterService<FileLockClusterView>
org.apache.camel.component.file.cluster.FileLockClusterService
All Implemented Interfaces:
AutoCloseable, org.apache.camel.CamelContextAware, org.apache.camel.cluster.CamelClusterService, org.apache.camel.Ordered, org.apache.camel.Service, org.apache.camel.ShutdownableService, org.apache.camel.spi.HasCamelContext, org.apache.camel.spi.HasId, org.apache.camel.spi.IdAware, org.apache.camel.StatefulService, org.apache.camel.SuspendableService

@Metadata(label="bean", description="A file based cluster locking (read documentation to understand limitations)", annotations="interfaceName=org.apache.camel.cluster.CamelClusterService") @Configurer(metadataOnly=true) public class FileLockClusterService extends org.apache.camel.support.cluster.AbstractCamelClusterService<FileLockClusterView>
  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.apache.camel.cluster.CamelClusterService

    org.apache.camel.cluster.CamelClusterService.Selector
  • Field Summary

    Fields inherited from class org.apache.camel.support.service.BaseService

    BUILT, FAILED, INITIALIZED, INITIALIZING, NEW, SHUTDOWN, SHUTTING_DOWN, STARTED, STARTING, status, STOPPED, STOPPING, SUSPENDED, SUSPENDING

    Fields inherited from interface org.apache.camel.Ordered

    HIGHEST, LOWEST
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    createView(String namespace)
     
    protected void
     
    long
     
     
    long
     
     
    int
     
    long
     
     
    int
     
     
    void
    setAcquireLockDelay(long acquireLockDelay)
    The time to wait before starting to try to acquire the cluster lock.
    void
    setAcquireLockDelay(long pollDelay, TimeUnit pollDelayUnit)
     
    void
    setAcquireLockDelayUnit(TimeUnit acquireLockDelayUnit)
    The time unit for the acquireLockDelay, default to TimeUnit.SECONDS.
    void
    setAcquireLockInterval(long acquireLockInterval)
    The time to wait between attempts to try to acquire the cluster lock evaluated using wall-clock time.
    void
    setAcquireLockInterval(long pollInterval, TimeUnit pollIntervalUnit)
     
    void
    setAcquireLockIntervalUnit(TimeUnit acquireLockIntervalUnit)
    The time unit for the acquireLockInterval, default to TimeUnit.SECONDS.
    void
    setClusterDataTaskMaxAttempts(int clusterDataTaskMaxAttempts)
    Sets how many times a cluster data task will run, counting both the first execution and subsequent retries in case of failure or timeout.
    void
    setClusterDataTaskTimeout(long clusterDataTaskTimeout)
    Sets the timeout for a cluster data task (reading or writing cluster data).
    void
    setClusterDataTaskTimeout(long clusterDataTaskTimeout, TimeUnit clusterDataTaskTimeoutUnit)
    Sets the timeout for a cluster data task (reading or writing cluster data).
    void
    setClusterDataTaskTimeoutUnit(TimeUnit clusterDataTaskTimeoutUnit)
    The time unit for the clusterDataTaskTimeoutUnit, default to TimeUnit.SECONDS.
    void
    setHeartbeatTimeoutMultiplier(int heartbeatTimeoutMultiplier)
    Multiplier applied to the cluster leader acquireLockInterval to determine how long followers should wait before considering the leader "stale".
    void
    Sets the root path.

    Methods inherited from class org.apache.camel.support.cluster.AbstractCamelClusterService

    doStart, getAttributes, getCamelContext, getId, getNamespaces, getOrder, getView, isLeader, releaseView, setAttribute, setAttributes, setCamelContext, setId, setOrder, startView, stopView

    Methods inherited from class org.apache.camel.support.service.BaseService

    build, doBuild, doFail, doInit, doLifecycleChange, doResume, doShutdown, doSuspend, fail, getInternalLock, getStatus, init, isBuild, isInit, isNew, isRunAllowed, isShutdown, isStarted, isStarting, isStartingOrStarted, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, shutdown, start, stop, suspend

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.apache.camel.cluster.CamelClusterService

    unwrap

    Methods inherited from interface org.apache.camel.spi.IdAware

    setGeneratedId

    Methods inherited from interface org.apache.camel.Service

    build, close, init, start, stop

    Methods inherited from interface org.apache.camel.ShutdownableService

    shutdown

    Methods inherited from interface org.apache.camel.StatefulService

    getStatus, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isSuspending

    Methods inherited from interface org.apache.camel.SuspendableService

    isSuspended, resume, suspend
  • Constructor Details

    • FileLockClusterService

      public FileLockClusterService()
  • Method Details

    • createView

      protected FileLockClusterView createView(String namespace) throws Exception
      Specified by:
      createView in class org.apache.camel.support.cluster.AbstractCamelClusterService<FileLockClusterView>
      Throws:
      Exception
    • getRoot

      public String getRoot()
    • setRoot

      public void setRoot(String root)
      Sets the root path.
    • getAcquireLockDelay

      public long getAcquireLockDelay()
    • setAcquireLockDelay

      public void setAcquireLockDelay(long acquireLockDelay)
      The time to wait before starting to try to acquire the cluster lock. Note that if FileLockClusterService determines no cluster members are running or cannot reliably determine the cluster state, the initial delay is computed from the acquireLockInterval, default 1.
    • setAcquireLockDelay

      public void setAcquireLockDelay(long pollDelay, TimeUnit pollDelayUnit)
    • getAcquireLockDelayUnit

      public TimeUnit getAcquireLockDelayUnit()
    • setAcquireLockDelayUnit

      public void setAcquireLockDelayUnit(TimeUnit acquireLockDelayUnit)
      The time unit for the acquireLockDelay, default to TimeUnit.SECONDS.
    • getAcquireLockInterval

      public long getAcquireLockInterval()
    • setAcquireLockInterval

      public void setAcquireLockInterval(long acquireLockInterval)
      The time to wait between attempts to try to acquire the cluster lock evaluated using wall-clock time. All cluster members must use the same value so leadership checks and leader liveness detection remain consistent, default 10.
    • setAcquireLockInterval

      public void setAcquireLockInterval(long pollInterval, TimeUnit pollIntervalUnit)
    • getAcquireLockIntervalUnit

      public TimeUnit getAcquireLockIntervalUnit()
    • setAcquireLockIntervalUnit

      public void setAcquireLockIntervalUnit(TimeUnit acquireLockIntervalUnit)
      The time unit for the acquireLockInterval, default to TimeUnit.SECONDS.
    • setHeartbeatTimeoutMultiplier

      public void setHeartbeatTimeoutMultiplier(int heartbeatTimeoutMultiplier)
      Multiplier applied to the cluster leader acquireLockInterval to determine how long followers should wait before considering the leader "stale".

      For example, if the leader updates its heartbeat every 2 seconds and the heartbeatTimeoutMultiplier is 3, followers will tolerate up to 2s * 3 = 6s of silence before declaring the leader unavailable.

    • getHeartbeatTimeoutMultiplier

      public int getHeartbeatTimeoutMultiplier()
    • setClusterDataTaskMaxAttempts

      public void setClusterDataTaskMaxAttempts(int clusterDataTaskMaxAttempts)
      Sets how many times a cluster data task will run, counting both the first execution and subsequent retries in case of failure or timeout. The default is 5 attempts.

      This can be useful when the cluster data root is on network based file storage, where I/O operations may occasionally block for long or unpredictable periods.

    • getClusterDataTaskMaxAttempts

      public int getClusterDataTaskMaxAttempts()
    • setClusterDataTaskTimeout

      public void setClusterDataTaskTimeout(long clusterDataTaskTimeout)
      Sets the timeout for a cluster data task (reading or writing cluster data). The default is 10 seconds.

      Timeouts are useful when the cluster data root is on network storage, where I/O operations may occasionally block for long or unpredictable periods.

    • getClusterDataTaskTimeout

      public long getClusterDataTaskTimeout()
    • setClusterDataTaskTimeoutUnit

      public void setClusterDataTaskTimeoutUnit(TimeUnit clusterDataTaskTimeoutUnit)
      The time unit for the clusterDataTaskTimeoutUnit, default to TimeUnit.SECONDS.
    • getClusterDataTaskTimeoutUnit

      public TimeUnit getClusterDataTaskTimeoutUnit()
    • setClusterDataTaskTimeout

      public void setClusterDataTaskTimeout(long clusterDataTaskTimeout, TimeUnit clusterDataTaskTimeoutUnit)
      Sets the timeout for a cluster data task (reading or writing cluster data). The default is 10 seconds.

      Timeouts are useful when the cluster data root is on network storage, where I/O operations may occasionally block for long or unpredictable periods.

    • doStop

      protected void doStop() throws Exception
      Overrides:
      doStop in class org.apache.camel.support.cluster.AbstractCamelClusterService<FileLockClusterView>
      Throws:
      Exception