update version

This commit is contained in:
houxinyu
2023-07-23 12:56:04 +08:00
parent 8db6cef414
commit c00ecbe8d0
10 changed files with 29 additions and 15 deletions

View File

@@ -24,7 +24,7 @@ import java.util.Objects;
* Redis解析器实现只支持EL形式的XML不支持其他的形式
*
* @author hxinyu
* @since 2.10.6
* @since 2.11.0
*/
public class RedisXmlELParser extends ClassXmlFlowELParser {

View File

@@ -4,7 +4,7 @@ package com.yomahub.liteflow.parser.redis.exception;
* Redis解析异常
*
* @author hxinyu
* @since 2.10.6
* @since 2.11.0
*/
public class RedisException extends RuntimeException{

View File

@@ -15,7 +15,7 @@ import java.util.List;
* Redis 解析器通用接口
*
* @author hxinyu
* @since 2.10.6
* @since 2.11.0
*/
public interface RedisParserHelper {

View File

@@ -4,7 +4,7 @@ package com.yomahub.liteflow.parser.redis.mode;
* 用于定义redis规则存储和监听方式的枚举类
*
* @author hxinyu
* @since 2.10.6
* @since 2.11.0
*/
public enum RedisParserMode {

View File

@@ -16,7 +16,7 @@ import java.util.Set;
* 用于轮询chain的定时任务
*
* @author hxinyu
* @since 2.10.6
* @since 2.11.0
*/
public class ChainPollingTask {

View File

@@ -12,15 +12,13 @@ import com.yomahub.liteflow.spi.holder.ContextAwareHolder;
import redis.clients.jedis.Jedis;
import java.util.*;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.*;
/**
* Redis 轮询机制实现类
*
* @author hxinyu
* @since 2.10.6
* @since 2.11.0
*/
public class RedisParserPollingMode implements RedisParserHelper {
@@ -43,6 +41,15 @@ public class RedisParserPollingMode implements RedisParserHelper {
//scriptKey中value的SHA1加密值 用于轮询时确定value是否变化
private Map<String, String> scriptSHAMap = new HashMap<>();
//定时任务线程池参数配置
private static final int CORE_POOL_SIZE = 1;
private static final int MAX_POOL_SIZE = 1;
private static final int QUEUE_CAPACITY = 5;
private static final Long KEEP_ALIVE_TIME = 1L;
//计算hash中field数量的lua脚本
private final String luaOfKey = "local keys = redis.call(\"hkeys\", KEYS[1]);\n" +
"return #keys;\n";
@@ -186,11 +193,15 @@ public class RedisParserPollingMode implements RedisParserHelper {
String valueLuaOfChain = chainJedis.scriptLoad(luaOfValue);
//定时任务线程池
ScheduledExecutorService pool = Executors.newScheduledThreadPool(10);
ScheduledExecutorService pool = Executors.newScheduledThreadPool(1);
ScheduledThreadPoolExecutor pollExecutor = new ScheduledThreadPoolExecutor(
CORE_POOL_SIZE,
new ThreadPoolExecutor.DiscardOldestPolicy());
//添加轮询chain的定时任务
ChainPollingTask chainTask = new ChainPollingTask(redisParserVO, chainJedis, chainNum, chainSHAMap, LOG);
pool.scheduleAtFixedRate(chainTask.pollChainTask(keyLuaOfChain, valueLuaOfChain),
pollExecutor.scheduleAtFixedRate(chainTask.pollChainTask(keyLuaOfChain, valueLuaOfChain),
60, redisParserVO.getPollingInterval().longValue(), TimeUnit.SECONDS);
//如果有脚本
@@ -202,7 +213,7 @@ public class RedisParserPollingMode implements RedisParserHelper {
//添加轮询script的定时任务
ScriptPollingTask scriptTask = new ScriptPollingTask(redisParserVO, scriptJedis, scriptNum, scriptSHAMap, LOG);
pool.scheduleAtFixedRate(scriptTask.pollScriptTask(keyLuaOfScript, valueLuaOfScript),
pollExecutor.scheduleAtFixedRate(scriptTask.pollScriptTask(keyLuaOfScript, valueLuaOfScript),
60, redisParserVO.getPollingInterval().longValue(), TimeUnit.SECONDS);
}
}

View File

@@ -15,7 +15,7 @@ import java.util.Set;
* 用于轮询script的定时任务
*
* @author hxinyu
* @since 2.10.6
* @since 2.11.0
*/
public class ScriptPollingTask {

View File

@@ -28,7 +28,7 @@ import java.util.Set;
* Redisson客户端 RMapCache存储结构
*
* @author hxinyu
* @since 2.10.6
* @since 2.11.0
*/
public class RedisParserSubscribeMode implements RedisParserHelper {

View File

@@ -6,7 +6,7 @@ import com.yomahub.liteflow.parser.redis.mode.RedisParserMode;
* 用于解析RuleSourceExtData的vo类用于Redis模式中
*
* @author hxinyu
* @since 2.10.6
* @since 2.11.0
*/
public class RedisParserVO {

View File

@@ -5,6 +5,9 @@ import com.yomahub.liteflow.parser.spi.ParserClassNameSpi;
/**
* Redis 解析器 SPI 实现
*
* @author hxinyu
* @since 2.11.0
*/
public class RedisParserClassNameSpi implements ParserClassNameSpi {