Package com.netgrif.quartz.mongodb.dao
Class LocksDao
- java.lang.Object
-
- com.netgrif.quartz.mongodb.dao.LocksDao
-
public class LocksDao extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description java.lang.StringinstanceId
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcreateIndex(boolean clustered)voiddropIndex()org.bson.DocumentfindJobLock(org.quartz.JobKey job)java.util.List<org.quartz.TriggerKey>findOwnTriggersLocks()org.bson.DocumentfindTriggerLock(org.quartz.TriggerKey trigger)com.mongodb.client.MongoCollection<org.bson.Document>getCollection()voidlockJob(org.quartz.JobDetail job)voidlockTrigger(org.quartz.TriggerKey key)booleanrelock(org.quartz.TriggerKey key, java.util.Date lockTime)Lock given trigger iff its lockTime haven't changed.voidremove(org.bson.Document lock)voidunlockJob(org.quartz.JobDetail job)voidunlockTrigger(org.quartz.spi.OperableTrigger trigger)Unlock the trigger if it still belongs to the current scheduler.booleanupdateOwnLock(org.quartz.TriggerKey key)Reset lock time on own lock.
-
-
-
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 locklockTime- expected current lockTime- Returns:
- false when not found or caught an exception
-
updateOwnLock
public boolean updateOwnLock(org.quartz.TriggerKey key) throws org.quartz.JobPersistenceExceptionReset 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)
-
-