增加星尘聊天超时10分钟清楚内存 缓存
This commit is contained in:
parent
74fe812935
commit
2bd1d6815b
@ -522,11 +522,17 @@ public enum ActionPartSpeechEnum implements IChinesePartSpeech{
|
|||||||
}else{
|
}else{
|
||||||
action.getTime().setTime(key, false);
|
action.getTime().setTime(key, false);
|
||||||
}
|
}
|
||||||
int index = action.getNoTimeAsk().indexOf(key);
|
if(StringUtils.isNotEmpty(action.getNoTimeAsk())){
|
||||||
String v = action.getNoTimeAsk().substring(0, index);
|
int index = action.getNoTimeAsk().indexOf(key);
|
||||||
v += action.getNoTimeAsk().substring(index + key.length());
|
if(index >= 0){
|
||||||
//action.setNoTimeAsk(action.getNoTimeAsk().substring(action.getNoTimeAsk().indexOf(key) + key.length()));
|
String v = action.getNoTimeAsk().substring(0, index);
|
||||||
action.setNoTimeAsk(v);
|
v += action.getNoTimeAsk().substring(index + key.length());
|
||||||
|
//action.setNoTimeAsk(action.getNoTimeAsk().substring(action.getNoTimeAsk().indexOf(key) + key.length()));
|
||||||
|
action.setNoTimeAsk(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
return action;
|
return action;
|
||||||
}
|
}
|
||||||
},//LAC TIME
|
},//LAC TIME
|
||||||
|
|||||||
@ -20,6 +20,7 @@ import org.springframework.util.CollectionUtils;
|
|||||||
import reactor.core.publisher.Mono;
|
import reactor.core.publisher.Mono;
|
||||||
import reactor.core.scheduler.Schedulers;
|
import reactor.core.scheduler.Schedulers;
|
||||||
|
|
||||||
|
import javax.annotation.PreDestroy;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@ -38,10 +39,18 @@ public class TongYiXinChenService implements ITongYi{
|
|||||||
/**
|
/**
|
||||||
* 超过该时间还未发送消息的将被剔除
|
* 超过该时间还未发送消息的将被剔除
|
||||||
*/
|
*/
|
||||||
static Long TIME_OUT = 60000L;
|
static Long TIME_OUT = 600000L;
|
||||||
|
|
||||||
|
Boolean runClean = true;
|
||||||
|
|
||||||
public TongYiXinChenService(){
|
public TongYiXinChenService(){
|
||||||
//checkOutTime().subscribeOn(Schedulers.newSingle("tongyi-xinchen-clean")).subscribe();
|
Mono.just(true).subscribeOn(Schedulers.newSingle("tongyi-xinchen-clean")).map(
|
||||||
|
b -> {
|
||||||
|
checkOutTime();
|
||||||
|
return b;
|
||||||
|
}
|
||||||
|
|
||||||
|
).subscribe();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -62,10 +71,10 @@ public class TongYiXinChenService implements ITongYi{
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private Mono<Void> checkOutTime(){
|
private void checkOutTime(){
|
||||||
log.info("开启清理内存数据任务");
|
log.info("开启清理内存数据任务");
|
||||||
List<String> keys = new ArrayList<>();
|
List<String> keys = new ArrayList<>();
|
||||||
while(true){
|
while(runClean){
|
||||||
for (String key: qianwenGroup.keySet()
|
for (String key: qianwenGroup.keySet()
|
||||||
) {
|
) {
|
||||||
AliYunXingChen aliYunXingChen = qianwenGroup.get(key);
|
AliYunXingChen aliYunXingChen = qianwenGroup.get(key);
|
||||||
@ -74,7 +83,10 @@ public class TongYiXinChenService implements ITongYi{
|
|||||||
keys.add(key);
|
keys.add(key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
log.info("需要清除内存中:{}数据", keys.size());
|
if(keys.size() > 0){
|
||||||
|
log.info("内存数据量{},需要清除内存中:{}数据", qianwenGroup.size(), keys.size());
|
||||||
|
}
|
||||||
|
|
||||||
for(String key: keys){
|
for(String key: keys){
|
||||||
qianwenGroup.remove(key);
|
qianwenGroup.remove(key);
|
||||||
}
|
}
|
||||||
@ -85,6 +97,10 @@ public class TongYiXinChenService implements ITongYi{
|
|||||||
log.info("定时清理内存中数据异常{}", e);
|
log.info("定时清理内存中数据异常{}", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@PreDestroy
|
||||||
|
public void stopRunClean(){
|
||||||
|
runClean = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user