Class LocksDao


  • public class LocksDao
    extends java.lang.Object
    • Field Summary

      Fields 
      Modifier and Type Field Description
      java.lang.String instanceId  
    • Constructor Summary

      Constructors 
      Constructor Description
      LocksDao​(com.mongodb.client.MongoCollection<org.bson.Document> locksCollection, Clock clock, java.lang.String instanceId)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void createIndex​(boolean clustered)  
      void dropIndex()  
      org.bson.Document findJobLock​(org.quartz.JobKey job)  
      java.util.List<org.quartz.TriggerKey> findOwnTriggersLocks()  
      org.bson.Document findTriggerLock​(org.quartz.TriggerKey trigger)  
      com.mongodb.client.MongoCollection<org.bson.Document> getCollection()  
      void lockJob​(org.quartz.JobDetail job)  
      void lockTrigger​(org.quartz.TriggerKey key)  
      boolean relock​(org.quartz.TriggerKey key, java.util.Date lockTime)
      Lock given trigger iff its lockTime haven't changed.
      void remove​(org.bson.Document lock)  
      void unlockJob​(org.quartz.JobDetail job)  
      void unlockTrigger​(org.quartz.spi.OperableTrigger trigger)
      Unlock the trigger if it still belongs to the current scheduler.
      boolean updateOwnLock​(org.quartz.TriggerKey key)
      Reset lock time on own lock.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • instanceId

        public final java.lang.String instanceId
    • Constructor Detail

      • LocksDao

        public LocksDao​(com.mongodb.client.MongoCollection<org.bson.Document> locksCollection,
                        Clock clock,
                        java.lang.String instanceId)
    • Method Detail

      • getCollection

        public com.mongodb.client.MongoCollection<org.bson.Document> getCollection()
      • createIndex

        public void createIndex​(boolean clustered)
      • dropIndex

        public void dropIndex()
      • findJobLock

        public org.bson.Document findJobLock​(org.quartz.JobKey job)
      • findTriggerLock

        public org.bson.Document findTriggerLock​(org.quartz.TriggerKey trigger)
      • findOwnTriggersLocks

        public java.util.List<org.quartz.TriggerKey> findOwnTriggersLocks()
      • lockJob

        public void lockJob​(org.quartz.JobDetail job)
      • lockTrigger

        public void lockTrigger​(org.quartz.TriggerKey key)
      • relock

        public boolean relock​(org.quartz.TriggerKey key,
                              java.util.Date lockTime)
        Lock given trigger iff its lockTime haven't changed.

        Update is performed using "Update document if current" pattern to update iff document in DB hasn't changed - haven't been relocked by other scheduler.

        Parameters:
        key - identifies trigger lock
        lockTime - expected current lockTime
        Returns:
        false when not found or caught an exception
      • updateOwnLock

        public boolean updateOwnLock​(org.quartz.TriggerKey key)
                              throws org.quartz.JobPersistenceException
        Reset lock time on own lock.
        Parameters:
        key - trigger whose lock to refresh
        Returns:
        true on successful update
        Throws:
        org.quartz.JobPersistenceException - in case of errors from Mongo
      • remove

        public void remove​(org.bson.Document lock)
      • unlockTrigger

        public void unlockTrigger​(org.quartz.spi.OperableTrigger trigger)
        Unlock the trigger if it still belongs to the current scheduler.
        Parameters:
        trigger - to unlock
      • unlockJob

        public void unlockJob​(org.quartz.JobDetail job)