mirror of
https://github.com/ctripcorp/zeus.git
synced 2024-09-20 23:56:05 +08:00
release dead lock after spring inited
This commit is contained in:
parent
5999fe2ef8
commit
e21ad5854f
|
@ -1,16 +1,18 @@
|
|||
package com.ctrip.zeus.lock;
|
||||
|
||||
import com.ctrip.zeus.dal.core.DistLockDao;
|
||||
import com.ctrip.zeus.dal.core.DistLockDo;
|
||||
import com.ctrip.zeus.dal.core.DistLockEntity;
|
||||
import com.ctrip.zeus.lock.impl.MysqlDistLock;
|
||||
import com.ctrip.zeus.util.S;
|
||||
import com.netflix.config.DynamicPropertyFactory;
|
||||
import com.netflix.config.DynamicStringProperty;
|
||||
import org.springframework.beans.BeansException;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.ApplicationContextAware;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.unidal.dal.jdbc.transaction.TransactionManager;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by zhoumy on 2015/4/23.
|
||||
|
@ -39,4 +41,13 @@ public class DbLockFactory {
|
|||
public String getResourceName() {
|
||||
return dbName.get();
|
||||
}
|
||||
|
||||
@PostConstruct
|
||||
public void releaseDeadLocks() throws Exception {
|
||||
List<DistLockDo> check = distLockDao.getByServer(S.getIp(), DistLockEntity.READSET_FULL);
|
||||
for (DistLockDo d : check) {
|
||||
d.setServer("").setOwner(0L).setCreatedTime(System.currentTimeMillis());
|
||||
}
|
||||
distLockDao.updateByKey(check.toArray(new DistLockDo[check.size()]), DistLockEntity.UPDATESET_FULL);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,6 +27,16 @@
|
|||
]]>
|
||||
</statement>
|
||||
</query>
|
||||
<query name="get-by-server" type="SELECT" multiple="true">
|
||||
<param name="server"/>
|
||||
<statement>
|
||||
<![CDATA[
|
||||
SELECT <FIELDS/>
|
||||
FROM <TABLE/>
|
||||
WHERE <FIELD name='server'/> = ${server}
|
||||
]]>
|
||||
</statement>
|
||||
</query>
|
||||
<query name="get-by-key-for-update" type="SELECT">
|
||||
<param name="lock-key"/>
|
||||
<statement>
|
||||
|
@ -37,7 +47,7 @@
|
|||
]]>
|
||||
</statement>
|
||||
</query>
|
||||
<query name="update-by-key" type="UPDATE">
|
||||
<query name="update-by-key" type="UPDATE" batch="true">
|
||||
<param name="lock-key"/>
|
||||
<statement>
|
||||
<![CDATA[
|
||||
|
|
Loading…
Reference in a new issue