相应redis中key值过期相应机制
来源:互联网 发布:手机端淘宝详情页高度 编辑:程序博客网 时间:2024/06/04 22:32
package com.tangcredit.tdfs3.redis;import org.springframework.beans.factory.DisposableBean;import org.springframework.beans.factory.InitializingBean;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;import com.tangcredit.tdfs3.utils.RedisUtils;import redis.clients.jedis.Jedis;@Componentpublic class RedisNotifyDaemon implements InitializingBean,DisposableBean{ @Override public void destroy(){} @Autowired private RedisSub sub; @Override public void afterPropertiesSet() throws Exception { Jedis jedis = RedisUtils.getInstance(); new Thread(() -> { jedis.psubscribe(sub, "__keyevent@*__:expired"); }).start(); }}
package com.tangcredit.tdfs3.redis;import java.math.BigDecimal;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;import com.tangcredit.tdfs3.dao.LoanInvestmentsDao;import com.tangcredit.tdfs3.dao.LoanPrjDynamicsDao;import com.tangcredit.tdfs3.dao.LoanProjectsDao;import com.tangcredit.tdfs3.entity.LoanInvestments;import com.tangcredit.tdfs3.entity.LoanPrjDynamics;import com.tangcredit.tdfs3.entity.LoanProjects;import com.tangcredit.tdfs3.utils.BigDecimalUtils;import com.tangcredit.tdfs3.utils.ConfigUtils;import redis.clients.jedis.JedisPubSub;@Componentpublic class RedisSub extends JedisPubSub { @Autowired private LoanInvestmentsDao loanInvestmentsDao; @Autowired private LoanPrjDynamicsDao loanPrjDynamicsDao; @Autowired private LoanProjectsDao loanProjectsDao; /** * 精确匹配 * * @param channel * @param message */ @Override public void onMessage(String channel, String message) { System.out.println("redis sub :" + channel + " message " + message); } /** * 初始化按表达式的方式订阅时候的处理 * * @param pattern * @param subscribedChannels */ @Override public void onPSubscribe(String pattern, int subscribedChannels) { System.out.println(pattern + "=" + subscribedChannels); } /** * 按表达式的方式订阅的消息后的处理 * * @param pattern 模式 * @param channel 频道,通道 * @param message 信息 */ @Override public void onPMessage(String pattern, String channel, String message) { System.out.println(pattern + "=" + channel + "=" + message); // 失效的投资订单回滚 System.out.println("==================start"); if (message.indexOf(ConfigUtils.identifyingIds) == 0) { System.out.println("==================start1" + message + "========="); List<LoanInvestments> invests = this.loanInvestmentsDao.getInvestsByOrderId(message); if (invests != null && invests.size() > 0) { LoanInvestments invest = invests.get(0); System.out.println("==================start2" + invest.getId() + "=========" + invest.getInvestState() + "===============" + invest.getInvestAmount()); if (invest.getInvestState() != null && invest.getInvestState() == -100) { invest.setInvestState(null); this.loanInvestmentsDao.save(invest); // save invest Integer loanId = invest.getLoanId(); LoanPrjDynamics dynamics = this.loanPrjDynamicsDao.getByLoanId(loanId); LoanProjects lp = this.loanProjectsDao.findOne(loanId); // success BigDecimal successAmount = this.loanInvestmentsDao.getInvestAmountByLoanIdAndState(loanId, 100); BigDecimal freezeAmount = this.loanInvestmentsDao.getInvestAmountByLoanIdAndState(loanId, -100); BigDecimal hasAmount = BigDecimalUtils.add(successAmount, freezeAmount); dynamics.setHasAmount(hasAmount); BigDecimal loanProgress = hasAmount .divide(lp.getLoanAmount(), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100)); dynamics.setLoanProgress(loanProgress.intValue()); if (lp.getProjectState() == 4) { lp.setProjectState(2); this.loanProjectsDao.save(lp); } this.loanPrjDynamicsDao.save(dynamics); System.out.println("==================SUCCESS=========================="); } } } }}
RedisUtils.setex(orderId, 60, String.valueOf(loanID)); // redis
http://blog.csdn.net/topwqp/article/details/8681573
http://redisdoc.com/topic/notification.html
http://blog.csdn.net/lihao21/article/details/48370687
0 0
- 相应redis中key值过期相应机制
- redis key的过期机制
- redis的key的过期机制
- 如何在inputreader中拦截相应的virtual key
- redis key 过期时间
- 遍历Map并通过value获取相应key值
- Android BLE项目中相应的超时处理机制
- 检查页面Session是否过期,过期执行相应操作 解决方法
- Redis中删除过期Key的三种策略
- Redis中删除过期Key的三种策略
- Redis中删除过期Key的三种策略
- Redis中删除过期Key的三种策略
- Redis中删除过期Key的三种策略
- java.util.HashMap中的key为对象的问题,对象key获得相应的value值
- redis设置key过期时间
- redis 获取key 过期时间
- Redis过期机制介绍
- redis过期处理机制
- Kafka实战-简单示例
- 无缓冲IO和缓冲IO
- MySQL MySql连接数与线程池
- python 下载或者直接读取csv文件
- Android控件入门2
- 相应redis中key值过期相应机制
- 统一寻址
- 在Django query中减少搜索数据库的次数
- JavaScript面试总结
- nginx+uwsgi+django 搭建web
- 基于引导滤波的暗通道优先去雾算法
- 前端面试宝典(一)
- 【VS开发】【计算机视觉】OpenCV读写xml文件《C版本》
- Deep Visual-Semantic Alignments for Generating Image Descriptions总结