Commit 134a6188 by Future

ehcache

parent b7f37177
......@@ -28,9 +28,7 @@ import com.wecloud.im.sdk.enums.MutedEnum;
import com.wecloud.im.service.EhcacheService;
import com.wecloud.im.service.ImApplicationService;
import com.wecloud.im.service.ImClientBlacklistService;
import com.wecloud.im.service.ImClientService;
import com.wecloud.im.service.ImConversationMembersService;
import com.wecloud.im.service.ImConversationService;
import com.wecloud.im.service.ImInboxService;
import com.wecloud.im.service.ImMessageService;
import com.wecloud.im.ws.enums.MsgTypeEnum;
......@@ -38,7 +36,6 @@ import com.wecloud.im.ws.enums.WsResponseCmdEnum;
import com.wecloud.im.ws.model.WsResponse;
import com.wecloud.im.ws.model.request.PushVO;
import com.wecloud.im.ws.sender.ChannelSender;
import com.wecloud.im.ws.utils.RedisUtils;
import com.wecloud.pushserver.client.model.constant.MqConstant;
import com.wecloud.pushserver.client.model.dto.PushDTO;
import com.wecloud.utils.JsonUtils;
......@@ -56,7 +53,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.time.Duration;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
......@@ -81,10 +77,6 @@ public class NormalChatAction {
@Autowired
private ImApplicationService imApplicationService;
@Autowired
private ImClientService imClientService;
@Autowired
private ImConversationService imConversationService;
@Autowired
private ImConversationMembersService imConversationMembersService;
@Autowired
private ImMessageService imMessageService;
......@@ -107,14 +99,14 @@ public class NormalChatAction {
// if (log.isDebugEnabled()) {
// log.debug("接收到参数,reqId: {},\n data: {}, ", reqId, data);
// }
ImConversationQueryVo conversation = imConversationService.getCacheImConversationById(data.getToConversation());
ImConversationQueryVo conversation = ehcacheService.getEhCacheConversation(data.getToConversation());
if (conversation == null) {
log.warn("会reqId: {} ,会话id: {}db中不存在", reqId, data.getToConversation());
return;
}
// 查询发送者client
ImClient imClientSender = imClientService.getCacheImClient(request.getSenderClientId());
ImClient imClientSender = ehcacheService.getEhCacheClient(request.getSenderClientId());
if (imClientSender == null) {
log.warn("根据senderClientId: {} 查找不到 imClientSender!", request.getSenderClientId());
return;
......@@ -388,7 +380,7 @@ public class NormalChatAction {
heFkClientId = membersList.get(0).getFkClientId();
}
ImClient imClientReceiver = imClientService.getCacheImClient(heFkClientId);
ImClient imClientReceiver = ehcacheService.getEhCacheClient(heFkClientId);
ImFriend my = friendService.getByKey(meClientId, heClientId);
ImFriend friend = friendService.getByKey(heClientId, meClientId);
......
package com.wecloud.im.service;
import com.alibaba.fastjson.JSON;
import com.wecloud.im.entity.ImApplication;
import com.wecloud.im.entity.ImClient;
import com.wecloud.im.param.ImConversationQueryVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.Cache;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
......@@ -19,6 +24,12 @@ import org.springframework.stereotype.Service;
public class EhcacheService {
@Autowired
private ImClientService imClientService;
@Autowired
private ImConversationService imConversationService;
@Autowired
private CacheManager cacheManager;
/**
......@@ -42,5 +53,20 @@ public class EhcacheService {
}
}
@Cacheable(value = "business", key = "#id")
public ImClient getEhCacheClient(Long id) {
return imClientService.getCacheImClient(id);
}
@Cacheable(value = "business", key = "#id")
public ImConversationQueryVo getEhCacheConversation(Long id) {
return imConversationService.getCacheImConversationById(id);
}
@CacheEvict(value = "business", key = "#id")
public void delEhCacheConversation(Long id) {
}
}
......@@ -55,6 +55,7 @@ import com.wecloud.im.sdk.enums.GroupRoleEnum;
import com.wecloud.im.sdk.enums.JoinConversationTypeEnum;
import com.wecloud.im.sdk.enums.MutedEnum;
import com.wecloud.im.service.ContextService;
import com.wecloud.im.service.EhcacheService;
import com.wecloud.im.service.ImApplicationService;
import com.wecloud.im.service.ImClientService;
import com.wecloud.im.service.ImConversationMembersService;
......@@ -86,6 +87,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.Duration;
import java.util.ArrayList;
import java.util.Arrays;
......@@ -152,6 +154,9 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
@Autowired
private RedisUtils redisUtils;
@Resource
private EhcacheService ehcacheService;
@Transactional(rollbackFor = Exception.class)
@Override
public boolean saveImConversation(ImConversation imConversation) {
......@@ -809,6 +814,7 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
@Override
public void deleteCacheImConversationById(Long id) {
redisUtils.delKey("conversationId_" + id);
ehcacheService.delEhCacheConversation(id);
}
@Override
......
......@@ -12,6 +12,17 @@
<persistence strategy="localTempSwap"/>
</defaultCache>
<cache name="business"
maxElementsInMemory="100000"
eternal="false"
timeToIdleSeconds="86400"
timeToLiveSeconds="86400"
maxElementsOnDisk="10000000"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU">
<persistence strategy="localTempSwap"/>
</cache>
<cache name="push"
maxElementsInMemory="10000"
eternal="false"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment