Commit 8099ae28 authored by 赵啸非's avatar 赵啸非

修改redis 过期事件通知

parent dd8c1191
package com.mortals.xhx.base.framework.config;
import com.mortals.xhx.base.framework.listener.CustomerKeyExpirationListener;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.listener.PatternTopic;
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
/**
* 监听所有expire事件
* @author: zxfei
* @date: 2022/6/22 16:51
* @description:
**/
@Configuration
public class RedisConfig {
@Bean
public RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory
, CustomerKeyExpirationListener customerKeyExpirationListener) {
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
container.addMessageListener(customerKeyExpirationListener,new PatternTopic("__keyevent@*__:expired"));
return container;
}
}
\ No newline at end of file
package com.mortals.xhx.base.framework.listener;
import org.springframework.data.redis.connection.Message;
import org.springframework.data.redis.connection.MessageListener;
import org.springframework.stereotype.Component;
/**
* @author: zxfei
* @date: 2022/6/22 16:40
* @description:
**/
@Component
public class CustomerKeyExpirationListener implements MessageListener {
@Override
public void onMessage(Message message, byte[] bytes) {
String key = message.toString();
System.out.println("监听到key:" + key + "过期");
}
}
\ No newline at end of file
package com.mortals.xhx.daemon.applicationservice; package com.mortals.xhx.daemon.applicationservice;
import com.mortals.framework.service.ICacheService;
import com.mortals.xhx.common.utils.SendTaskThreadPool; import com.mortals.xhx.common.utils.SendTaskThreadPool;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
...@@ -10,17 +11,24 @@ import org.springframework.stereotype.Component; ...@@ -10,17 +11,24 @@ import org.springframework.stereotype.Component;
import com.mortals.framework.springcloud.service.IApplicationService; import com.mortals.framework.springcloud.service.IApplicationService;
import java.time.Duration;
@Component @Component
@Slf4j @Slf4j
public class DemoStartService implements IApplicationService { public class DemoStartService implements IApplicationService {
@Autowired @Autowired
private SendTaskThreadPool sendTaskThreadPool; private SendTaskThreadPool sendTaskThreadPool;
@Autowired
private ICacheService cacheService;
@Override @Override
public void start() { public void start() {
log.info("初始化发送线程数量"); log.info("初始化发送线程数量");
sendTaskThreadPool.init(20); sendTaskThreadPool.init(20);
cacheService.setnx("test-expire","111", Duration.ofMinutes(1).toMillis());
log.info("开始服务..[配置已加载完成,但部分框架还未初始化,比如:Kafka]"); log.info("开始服务..[配置已加载完成,但部分框架还未初始化,比如:Kafka]");
} }
......
...@@ -3,6 +3,7 @@ package com.mortals.xhx.module.device.service.impl; ...@@ -3,6 +3,7 @@ package com.mortals.xhx.module.device.service.impl;
import cn.hutool.core.lang.PatternPool; import cn.hutool.core.lang.PatternPool;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICacheService;
import com.mortals.framework.service.impl.AbstractCRUDCacheServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDCacheServiceImpl;
import com.mortals.xhx.base.system.message.MessageService; import com.mortals.xhx.base.system.message.MessageService;
import com.mortals.xhx.busiz.req.DeviceReq; import com.mortals.xhx.busiz.req.DeviceReq;
...@@ -52,6 +53,8 @@ public class DeviceServiceImpl extends AbstractCRUDCacheServiceImpl<DeviceDao, D ...@@ -52,6 +53,8 @@ public class DeviceServiceImpl extends AbstractCRUDCacheServiceImpl<DeviceDao, D
@Autowired @Autowired
private MessageService messageService; private MessageService messageService;
@Autowired
private ICacheService cacheService;
@Override @Override
......
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