redis过期事件回调案例一
需求:任务下发后,在规定时间内必须处理,否则将从任务列表从新下发,再次下发。假设现有10个可处理任务,有下级单位领取任务,甲单位领取后,任务数10-1=9。但是超过规定时长未处理。则任务回归未下发状态、总结有两种实现方案,第二种参考之前网上学习过的一个订单超时未支付的解决方案,刚好解决本次需求。如果有类似场景,可以稍加调整套用,推荐第二种
1、定时任务轮询,规定时间内验证任务状态是否为已完成或已终止
2、采用redis ,key有效期回调事件实现
- 为每笔任务单绑定一个token,设置有限期为30分钟
key=aaaa-bbbb-cccc value=123456
对该key绑定过期事件回调,执行回调方法
Redis中配置开启过期回调监听
notify-keyspace-events "Ex"
@Configuration
public class RedisListenerConfig {
@Bean
RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
return container;
}
}
@Component
public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener {
public RedisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
super(listenerContainer);
}
/**
* Redis失效事件 key
*
* @param message
* @param pattern
*/
@Override
public void onMessage(Message message, byte[] pattern) {
System.out.println(message.toString() "失效");
//失效后业务逻辑
}
}
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgakkea
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01