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

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

      • 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