Commit 134a6188 by Future

ehcache

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