60秒无心跳判定离线
This commit is contained in:
parent
2fe8be514a
commit
d690d99ab6
@ -1,11 +1,5 @@
|
||||
package com.xhpc.common.redis.service;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.core.BoundSetOperations;
|
||||
import org.springframework.data.redis.core.HashOperations;
|
||||
@ -13,6 +7,9 @@ import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.data.redis.core.ValueOperations;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* spring redis 工具类
|
||||
*
|
||||
@ -102,20 +99,29 @@ public class RedisService
|
||||
* @param collection 多个对象
|
||||
* @return
|
||||
*/
|
||||
public long deleteObject(final Collection collection)
|
||||
{
|
||||
public long deleteObject(final Collection collection) {
|
||||
|
||||
return redisTemplate.delete(collection);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除单个key下的某个值
|
||||
*
|
||||
* @param key
|
||||
*/
|
||||
public void deleteSetVal(final String key, final Object val) {
|
||||
|
||||
redisTemplate.opsForSet().remove(key, val);
|
||||
}
|
||||
|
||||
/**
|
||||
* 缓存List数据
|
||||
*
|
||||
* @param key 缓存的键值
|
||||
* @param key 缓存的键值
|
||||
* @param dataList 待缓存的List数据
|
||||
* @return 缓存的对象
|
||||
*/
|
||||
public <T> long setCacheList(final String key, final List<T> dataList)
|
||||
{
|
||||
public <T> long setCacheList(final String key, final List<T> dataList) {
|
||||
Long count = redisTemplate.opsForList().rightPushAll(key, dataList);
|
||||
return count == null ? 0 : count;
|
||||
}
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
package com.xhpc.pp.logic;
|
||||
|
||||
import com.xhpc.common.dto.ConnectorStatusInfo;
|
||||
import com.xhpc.pp.config.EarlierBeanConf;
|
||||
import com.xhpc.pp.tx.ServiceParameter;
|
||||
import com.xhpc.pp.tx.ServiceResult;
|
||||
import com.xhpc.pp.tx.logic.ServiceLogic;
|
||||
@ -12,6 +11,7 @@ import org.slf4j.LoggerFactory;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
@ -39,10 +39,10 @@ public class RegisterLogic implements ServiceLogic {
|
||||
log.info("pile not in whitelist ({}) ", pileNo);
|
||||
hexCode = ServiceResult.HEX_01;
|
||||
resultCode = ServiceResult.FAIL;
|
||||
} else if (!EarlierBeanConf.ifcanreg(pileNo)) {
|
||||
log.info("pile already registered ({}) ", pileNo);
|
||||
hexCode = ServiceResult.HEX_01;
|
||||
resultCode = ServiceResult.FAIL;
|
||||
// } else if (!EarlierBeanConf.ifcanreg(pileNo)) { // not a stable reliable method
|
||||
// log.info("pile already registered ({}) ", pileNo);
|
||||
// hexCode = ServiceResult.HEX_01;
|
||||
// resultCode = ServiceResult.FAIL;
|
||||
} else {
|
||||
String pkey = "pile:".concat(pileNo);
|
||||
Map<String, Object> cachePile = REDIS.getCacheMap(pkey);
|
||||
@ -60,7 +60,14 @@ public class RegisterLogic implements ServiceLogic {
|
||||
cacheGun.put("statusInt", ConnectorStatusInfo.OFF_LINE);
|
||||
cacheGun.put("svcSrv", localIPAndPort);
|
||||
REDIS.setCacheMap(gunkey, cacheGun);
|
||||
cachePileGunSvcSrv(gunkey);
|
||||
String svcSrvKeyNew = "svcSrvGuns:".concat(getLocalIPAndPort());
|
||||
cachePileGunSvcSrv(gunkey, svcSrvKeyNew);
|
||||
final Collection<String> cacheSvcSrvKeys = REDIS.keys("svcSrvGuns:*");
|
||||
for (String svcSrvKey : cacheSvcSrvKeys) {
|
||||
if (!svcSrvKey.equals(svcSrvKeyNew)) {
|
||||
REDIS.deleteSetVal(svcSrvKey, gunkey);
|
||||
}
|
||||
}
|
||||
}
|
||||
log.info("pile (re)registered ({}) ", pileNo);
|
||||
}
|
||||
@ -71,12 +78,11 @@ public class RegisterLogic implements ServiceLogic {
|
||||
return new ServiceResult(HexUtils.toBytes(resultStr), resultCode);
|
||||
}
|
||||
|
||||
private void cachePileGunSvcSrv(String gunkey) {
|
||||
private void cachePileGunSvcSrv(String gunkey, String svcSrvKey) {
|
||||
|
||||
String svcKey = "svcSrvGuns:".concat(getLocalIPAndPort());
|
||||
Set<String> svcPileGuns = REDIS.getCacheSet(svcKey);
|
||||
Set<String> svcPileGuns = REDIS.getCacheSet(svcSrvKey);
|
||||
svcPileGuns.add(gunkey);
|
||||
REDIS.setCacheSet(svcKey, svcPileGuns);
|
||||
REDIS.setCacheSet(svcSrvKey, svcPileGuns);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -18,7 +18,6 @@ public class HBCheckTask {
|
||||
@Scheduled(fixedRate = 10000)
|
||||
protected void run() {
|
||||
|
||||
System.out.println("hbchk..");
|
||||
String svcSrvKey = "svcSrvGuns".concat(getLocalIPAndPort());
|
||||
List<String> cacheGunkeyList = REDIS.getCacheList(svcSrvKey);
|
||||
Long now = Calendar.getInstance().getTimeInMillis();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user