public class LockManagerImpl extends AbstractLockManager
限定符和类型 | 字段和说明 |
---|---|
static int |
CHECK_PERIOD_SECONDS |
EXPIRE_MILLIS, lockLogger, READ_ACTIOM
构造器和说明 |
---|
LockManagerImpl() |
限定符和类型 | 方法和说明 |
---|---|
void |
activeReadLock(long owner,
long resourceId)
激活读锁,保证锁有效,若30秒未激活,锁会被回收。
|
void |
addReleaseLockListener(com.seeyon.ctp.common.lock.manager.ReleaseLockListener listener)
注册锁释放监听器,每个应用智能注册一个监听器
|
boolean |
check(long userId,
long resourceId)
判断指定人员是否可以访问资源。
|
boolean |
check(long userId,
long resourceId,
int action)
判断指定人员是否可以访问资源。
|
java.util.List<com.seeyon.ctp.common.po.lock.Lock> |
getAllLock()
该方法存在性能问题,并且使用场景不合理,废弃不再维护
|
com.seeyon.ctp.common.lock.manager.ConcreteLockManager |
getDatabaseLockManager() |
com.seeyon.ctp.common.po.lock.Lock |
getLock(long resourceId,
int action)
取得资源的指定操作的锁。
|
com.seeyon.ctp.common.lock.manager.ConcreteLockManager |
getLockManagers() |
java.util.List<com.seeyon.ctp.common.po.lock.Lock> |
getLocks(long resourceId)
取得资源的所有锁。
|
com.seeyon.ctp.common.lock.manager.ConcreteLockManager |
getMemoryLockManager() |
com.seeyon.ctp.common.lock.manager.ConcreteLockManager |
getRedisLockManager() |
void |
init() |
boolean |
lock(com.seeyon.ctp.common.po.lock.Lock lock)
对资源的操作加锁(高级使用,谨慎,lock参数需使用lockManager.createDefaultLock创建此对象才行)。
|
boolean |
lock(long owner,
long resourceId)
加锁。
|
boolean |
lock(long owner,
long resourceId,
int action)
对资源的操作加锁。
|
boolean |
lock(long owner,
long resourceId,
int action,
boolean ignoreOnlineStatus)
对资源的操作加锁。
|
boolean |
lock(long owner,
long resourceId,
int action,
java.lang.String from) |
boolean |
lock(long owner,
long resourceId,
int action,
java.lang.String from,
boolean useNowexpirationTime) |
boolean |
lock(long owner,
long resourceId,
int action,
java.lang.String from,
boolean useNowexpirationTime,
boolean unlockSelfLock,
boolean ignoreOnlineStatus) |
boolean |
lock(long owner,
long resourceId,
java.lang.String from) |
boolean |
lock(long owner,
long resourceId,
java.lang.String from,
boolean ignoreOnlineStatus) |
boolean |
lockForRead(long owner,
long resourceId)
资源加读锁
|
boolean |
lockForWrite(long owner,
long resourceId)
解锁写锁
|
void |
releaseCurrentLock(com.seeyon.ctp.common.po.lock.Lock lock)
释放锁
|
void |
setDatabaseLockManager(com.seeyon.ctp.common.lock.manager.ConcreteLockManager databaseLockManager) |
void |
setMemoryLockManager(com.seeyon.ctp.common.lock.manager.ConcreteLockManager memoryLockManager) |
void |
setRedisLockManager(com.seeyon.ctp.common.lock.manager.ConcreteLockManager redisLockManager) |
void |
unlock(long resourceId)
解锁。
|
void |
unlock(long resourceId,
int action)
解锁。
|
void |
unlock(long owner,
long resourceId,
int action)
解锁。
|
void |
unlockForRead(long owner,
long resourceId)
解锁读锁
|
void |
updateLockExpirationTime(long rd,
int action,
long time) |
void |
updateLockObj(long rd,
int action,
long time) |
activeWriteLock, check, check, createDefaultLock, getLoginTime, getMember, getModule, getOnLineManager, getOrgManager, getOwnerName, getSortOrder, getValidator, initialize, isValid, lock, releaseOutDateLock, setModule, setOnLineManager, setOrgManager, setValidator, unlockForWrite
public static final int CHECK_PERIOD_SECONDS
public com.seeyon.ctp.common.lock.manager.ConcreteLockManager getLockManagers()
public boolean lock(com.seeyon.ctp.common.po.lock.Lock lock)
com.seeyon.ctp.common.lock.manager.LockManager
lock
在接口中 com.seeyon.ctp.common.lock.manager.LockManager
lock
在类中 AbstractLockManager
public boolean lock(long owner, long resourceId)
com.seeyon.ctp.common.lock.manager.LockManager
lock
在接口中 com.seeyon.ctp.common.lock.manager.LockManager
lock
在类中 AbstractLockManager
owner
- 加锁人Id。resourceId
- 资源Id,如协同的affairIdtrue
,如果指定资源锁已存在返回false
。public boolean lock(long owner, long resourceId, java.lang.String from)
lock
在接口中 com.seeyon.ctp.common.lock.manager.LockManager
lock
在类中 AbstractLockManager
from
- 来自哪个端,目前只有WXT用到,WXT表示微协同public boolean lock(long owner, long resourceId, int action, java.lang.String from)
lock
在接口中 com.seeyon.ctp.common.lock.manager.LockManager
lock
在类中 AbstractLockManager
from
- 来自哪个端,目前只有WXT用到,WXT表示微协同public boolean lock(long owner, long resourceId, int action, java.lang.String from, boolean useNowexpirationTime)
lock
在接口中 com.seeyon.ctp.common.lock.manager.LockManager
lock
在类中 AbstractLockManager
from
- 来自哪个端,目前只有WXT用到,WXT表示微协同public boolean lock(long owner, long resourceId, int action, boolean ignoreOnlineStatus)
com.seeyon.ctp.common.lock.manager.LockManager
lock
在接口中 com.seeyon.ctp.common.lock.manager.LockManager
lock
在类中 AbstractLockManager
owner
- 加锁人Id。resourceId
- 资源Id。action
- 资源操作。ignoreOnlineStatus
- 是否忽略加锁人在线状态的校验,存在一些后台线程需要不校验用户状态的情形true
,如果指定资源操作锁已存在返回false
。public boolean lock(long owner, long resourceId, int action)
com.seeyon.ctp.common.lock.manager.LockManager
lock
在接口中 com.seeyon.ctp.common.lock.manager.LockManager
lock
在类中 AbstractLockManager
owner
- 加锁人Id。resourceId
- 资源Id。action
- 资源操作。true
,如果指定资源操作锁已存在返回false
。public boolean lock(long owner, long resourceId, java.lang.String from, boolean ignoreOnlineStatus)
lock
在接口中 com.seeyon.ctp.common.lock.manager.LockManager
lock
在类中 AbstractLockManager
owner
- 加锁人Id。resourceId
- 资源Id。from
- 来自哪个端,目前只有WXT用到,WXT表示微协同ignoreOnlineStatus
- 是否忽略加锁人在线状态的校验,存在一些后台线程需要不校验用户状态的情形public boolean lock(long owner, long resourceId, int action, java.lang.String from, boolean useNowexpirationTime, boolean unlockSelfLock, boolean ignoreOnlineStatus)
lock
在接口中 com.seeyon.ctp.common.lock.manager.LockManager
lock
在类中 AbstractLockManager
from
- 来自哪个端,目前只有WXT用到,WXT表示微协同unlockSelfLock
- 是否释放已持有锁public java.util.List<com.seeyon.ctp.common.po.lock.Lock> getLocks(long resourceId)
com.seeyon.ctp.common.lock.manager.LockManager
getLocks
在接口中 com.seeyon.ctp.common.lock.manager.LockManager
getLocks
在类中 AbstractLockManager
resourceId
- 资源Idpublic com.seeyon.ctp.common.po.lock.Lock getLock(long resourceId, int action)
com.seeyon.ctp.common.lock.manager.LockManager
getLock
在接口中 com.seeyon.ctp.common.lock.manager.LockManager
getLock
在类中 AbstractLockManager
resourceId
- 资源Id。action
- 操作。null
。public void unlock(long resourceId)
com.seeyon.ctp.common.lock.manager.LockManager
unlock
在接口中 com.seeyon.ctp.common.lock.manager.LockManager
unlock
在类中 AbstractLockManager
resourceId
- 资源Id。public void unlock(long resourceId, int action)
com.seeyon.ctp.common.lock.manager.LockManager
unlock
在接口中 com.seeyon.ctp.common.lock.manager.LockManager
unlock
在类中 AbstractLockManager
resourceId
- 资源Id。action
- 资源操作。public void releaseCurrentLock(com.seeyon.ctp.common.po.lock.Lock lock)
com.seeyon.ctp.common.lock.manager.LockManager
releaseCurrentLock
在接口中 com.seeyon.ctp.common.lock.manager.LockManager
releaseCurrentLock
在类中 AbstractLockManager
public void unlock(long owner, long resourceId, int action)
com.seeyon.ctp.common.lock.manager.LockManager
unlock
在接口中 com.seeyon.ctp.common.lock.manager.LockManager
unlock
在类中 AbstractLockManager
owner
- 加锁人IdresourceId
- 资源Id。action
- 资源操作。public boolean check(long userId, long resourceId)
com.seeyon.ctp.common.lock.manager.LockManager
check
在接口中 com.seeyon.ctp.common.lock.manager.LockManager
check
在类中 AbstractLockManager
userId
- 人员IdresourceId
- 资源Id。true
,否则返回false
public boolean check(long userId, long resourceId, int action)
com.seeyon.ctp.common.lock.manager.LockManager
check
在接口中 com.seeyon.ctp.common.lock.manager.LockManager
check
在类中 AbstractLockManager
public com.seeyon.ctp.common.lock.manager.ConcreteLockManager getMemoryLockManager()
public void setMemoryLockManager(com.seeyon.ctp.common.lock.manager.ConcreteLockManager memoryLockManager)
public com.seeyon.ctp.common.lock.manager.ConcreteLockManager getDatabaseLockManager()
public void setDatabaseLockManager(com.seeyon.ctp.common.lock.manager.ConcreteLockManager databaseLockManager)
public com.seeyon.ctp.common.lock.manager.ConcreteLockManager getRedisLockManager()
public void setRedisLockManager(com.seeyon.ctp.common.lock.manager.ConcreteLockManager redisLockManager)
public void updateLockObj(long rd, int action, long time)
public java.util.List<com.seeyon.ctp.common.po.lock.Lock> getAllLock()
com.seeyon.ctp.common.lock.manager.LockManager
getAllLock
在接口中 com.seeyon.ctp.common.lock.manager.LockManager
getAllLock
在类中 AbstractLockManager
public void updateLockExpirationTime(long rd, int action, long time)
updateLockExpirationTime
在接口中 com.seeyon.ctp.common.lock.manager.LockManager
updateLockExpirationTime
在类中 AbstractLockManager
public boolean lockForRead(long owner, long resourceId)
com.seeyon.ctp.common.lock.manager.LockManager
lockForRead
在接口中 com.seeyon.ctp.common.lock.manager.LockManager
lockForRead
在类中 AbstractLockManager
resourceId
- 加锁资源对象IDpublic void activeReadLock(long owner, long resourceId)
com.seeyon.ctp.common.lock.manager.LockManager
activeReadLock
在接口中 com.seeyon.ctp.common.lock.manager.LockManager
activeReadLock
在类中 AbstractLockManager
resourceId
- 加锁资源对象IDpublic void unlockForRead(long owner, long resourceId)
com.seeyon.ctp.common.lock.manager.LockManager
unlockForRead
在接口中 com.seeyon.ctp.common.lock.manager.LockManager
unlockForRead
在类中 AbstractLockManager
owner
- 加锁人员IDresourceId
- 资源对象IDpublic boolean lockForWrite(long owner, long resourceId)
com.seeyon.ctp.common.lock.manager.LockManager
lockForWrite
在接口中 com.seeyon.ctp.common.lock.manager.LockManager
lockForWrite
在类中 AbstractLockManager
owner
- 加锁人员IDresourceId
- 加锁资源对象IDpublic void addReleaseLockListener(com.seeyon.ctp.common.lock.manager.ReleaseLockListener listener)
com.seeyon.ctp.common.lock.manager.LockManager
addReleaseLockListener
在接口中 com.seeyon.ctp.common.lock.manager.LockManager
addReleaseLockListener
在类中 AbstractLockManager
listener
- 监听器public void init()
init
在类中 AbstractLockManager