Class DistributedLocker

java.lang.Object
fr.ens.biologie.genomique.eoulsan.util.locker.DistributedLocker
All Implemented Interfaces:
Locker, org.apache.zookeeper.Watcher

public class DistributedLocker extends Object implements Locker, org.apache.zookeeper.Watcher
This class implements a locker using Zookeeper based on Twiter's DistributedLock class. See @see Twitter Commons code.
Since:
2.0
Author:
Laurent Jourdren
  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.apache.zookeeper.Watcher

    org.apache.zookeeper.Watcher.Event
  • Constructor Summary

    Constructors
    Constructor
    Description
    DistributedLocker(String connectString, int sessionTimeout, String lockBasePath, String lockName)
    Public constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Wait the token and then lock the resource.
    void
    process(org.apache.zookeeper.WatchedEvent event)
     
    void
    Unlock the resource.

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • DistributedLocker

      public DistributedLocker(String connectString, int sessionTimeout, String lockBasePath, String lockName) throws IOException
      Public constructor.
      Parameters:
      connectString - Zookeeper connection string
      sessionTimeout - session time out
      lockBasePath - lock base path
      lockName - lock name
      Throws:
      IOException - if an error occurs while creating the ZooKeeper connection
  • Method Details

    • lock

      public void lock() throws IOException
      Description copied from interface: Locker
      Wait the token and then lock the resource.
      Specified by:
      lock in interface Locker
      Throws:
      IOException - if an error occurs while locking the resource
    • unlock

      public void unlock() throws IOException
      Description copied from interface: Locker
      Unlock the resource.
      Specified by:
      unlock in interface Locker
      Throws:
      IOException - if an error occurs while unlocking the resource
    • process

      public void process(org.apache.zookeeper.WatchedEvent event)
      Specified by:
      process in interface org.apache.zookeeper.Watcher