集群
集群锁
com.fr.scheduler.tool.FineSchedulerPropertiesBuilder
properties.put("com.fr.third.v2.org.quartz.jobStore.lockHandler.class", "com.fr.scheduler.cluster.FineSemaphore");
public interface Semaphore {
/*
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * * Interface.
* * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
/**
* Grants a lock on the identified resource to the calling thread (blocking * until it is available). ** @param conn Database connection used to establish lock. Can be null if
* <code>{@link #requiresConnection()}</code> returns false.
** @return true if the lock was obtained.
*/ boolean obtainLock(Connection conn, String lockName) throws LockException;
/**
* Release the lock on the identified resource if it is held by the calling * thread. */ void releaseLock(String lockName) throws LockException;
/**
* Whether this Semaphore implementation requires a database connection for * its lock management operations. ** @see #obtainLock(Connection, String)
* @see #releaseLock(String)
*/ boolean requiresConnection();
}直接通过 Quartz 提供的 Semaphore 接口,进行集群锁的锁定。