增加星尘聊天超时10分钟清楚内存 缓存

This commit is contained in:
wulin 2023-11-22 10:54:41 +08:00
parent 74fe812935
commit 2bd1d6815b
2 changed files with 32 additions and 10 deletions

View File

@ -522,11 +522,17 @@ public enum ActionPartSpeechEnum implements IChinesePartSpeech{
}else{
action.getTime().setTime(key, false);
}
int index = action.getNoTimeAsk().indexOf(key);
String v = action.getNoTimeAsk().substring(0, index);
v += action.getNoTimeAsk().substring(index + key.length());
//action.setNoTimeAsk(action.getNoTimeAsk().substring(action.getNoTimeAsk().indexOf(key) + key.length()));
action.setNoTimeAsk(v);
if(StringUtils.isNotEmpty(action.getNoTimeAsk())){
int index = action.getNoTimeAsk().indexOf(key);
if(index >= 0){
String v = action.getNoTimeAsk().substring(0, index);
v += action.getNoTimeAsk().substring(index + key.length());
//action.setNoTimeAsk(action.getNoTimeAsk().substring(action.getNoTimeAsk().indexOf(key) + key.length()));
action.setNoTimeAsk(v);
}
}
return action;
}
},//LAC TIME

View File

@ -20,6 +20,7 @@ import org.springframework.util.CollectionUtils;
import reactor.core.publisher.Mono;
import reactor.core.scheduler.Schedulers;
import javax.annotation.PreDestroy;
import javax.annotation.Resource;
import java.time.Duration;
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(){
//checkOutTime().subscribeOn(Schedulers.newSingle("tongyi-xinchen-clean")).subscribe();
Mono.just(true).subscribeOn(Schedulers.newSingle("tongyi-xinchen-clean")).map(
b -> {
checkOutTime();
return b;
}
).subscribe();
}
@Override
@ -62,10 +71,10 @@ public class TongYiXinChenService implements ITongYi{
});
}
private Mono<Void> checkOutTime(){
private void checkOutTime(){
log.info("开启清理内存数据任务");
List<String> keys = new ArrayList<>();
while(true){
while(runClean){
for (String key: qianwenGroup.keySet()
) {
AliYunXingChen aliYunXingChen = qianwenGroup.get(key);
@ -74,7 +83,10 @@ public class TongYiXinChenService implements ITongYi{
keys.add(key);
}
}
log.info("需要清除内存中:{}数据", keys.size());
if(keys.size() > 0){
log.info("内存数据量{},需要清除内存中:{}数据", qianwenGroup.size(), keys.size());
}
for(String key: keys){
qianwenGroup.remove(key);
}
@ -85,6 +97,10 @@ public class TongYiXinChenService implements ITongYi{
log.info("定时清理内存中数据异常{}", e);
}
}
}
@PreDestroy
public void stopRunClean(){
runClean = false;
}
}