当前位置: 首页 > news >正文

桂林建网站的公司windows10PHP 网站建设

桂林建网站的公司,windows10PHP 网站建设,如何在本地搭建wordpress,福田招聘信息开发背景 为了实现当经纪人A提交分佣后如果三天后其他经纪人没有确认分佣就自动确认分佣&#xff0c;如果经纪人A修改分佣后再次提交分佣&#xff0c;时间重置为三天 实现方式 第一步&#xff1a;引入依赖 <dependency> <groupId>redis.clients</groupId> …

开发背景

 为了实现当经纪人A提交分佣后如果三天后其他经纪人没有确认分佣就自动确认分佣,如果经纪人A修改分佣后再次提交分佣,时间重置为三天

实现方式

第一步:引入依赖

<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.6.0</version>
</dependency>

第二步: 配置发送过期事件的通知

在redis.config文件中设置   notify-keyspace-events Ex

 第二步:创建一个jedis工具类

@Component
public class JedisUtil {@Value("${spring.redis.host}")private String host;@Value("${spring.redis.port}")private Integer port;@Value("${spring.redis.password}")private String password;private JedisPool jedisPool;@PostConstructpublic void init() {JedisPoolConfig poolConfig = new JedisPoolConfig();jedisPool = new JedisPool(poolConfig, host, port, 2000, password);}public Jedis getJedis() {return jedisPool.getResource();}@PreDestroypublic void close() {if (jedisPool != null) {jedisPool.close();}}
}

第三步:发布订阅

本地代码

    public static void main(String[] args) {Jedis jedis = new Jedis("127.0.0.1", 6379);//有密码就设置jedis.auth("aaaaa");CommissionInfoListener listener = new CommissionInfoListener();String expirationSubscription = "__keyevent@0__:expired";new Thread(() -> {try {jedis.psubscribe(listener, expirationSubscription);} catch (Exception e) {System.out.println("Subscribing failed." + e.getMessage());}}).start();}

springBoot正式项目

@Component
@Slf4j
public class CommissionInfoLineRunner implements CommandLineRunner {@Resourceprivate JedisUtil jedisUtil;@Overridepublic void run(String... args) throws Exception {log.info("订阅分佣三天自动确认开始~~~");Jedis jedis = jedisUtil.getJedis();CommissionInfoListener listener = new CommissionInfoListener();String expirationSubscription = "__keyevent@0__:expired";new Thread(() -> {try {jedis.psubscribe(listener, expirationSubscription);} catch (Exception e) {log.info("订阅失败,错误信息:{}", e.getMessage());}}).start();}
}

 代码解释

1.__keyevent@0__:expired含义

键空间通知会发送两种不同类型的事件消息:keyspace 和 keyevent

keyspace :键空间通知

keyevent :键事件通知

0:指的是库名称,一般默认为0

2. psubscribe

在使用 Jedis 的 psubscribe 方法时,遇到程序卡住不执行的情况是因为 psubscribe 是一个阻塞操作,它会持续监听指定模式的消息直到被外部显式地取消订阅。这是 Redis 发布订阅模式的常见行为。它设计为一直运行,直到接收到取消订阅的命令。所以在本地运行main方法后要保持运行状态,不然订阅不到消息。springboot项目中可以实现CommandLineRunner实现

第四步:监听订阅消息

代码

@Service
@Slf4j
public class CommissionInfoListener extends JedisPubSub {@ResourceCommissionInfoService commissionInfoService;@Overridepublic void onPMessage(String pattern, String channel, String message) {if (message.contains("aimeng:commissionInfo:confirmation:")) {Long commissionInfoId = Long.parseLong(StrUtil.subAfter(message, ':', true));log.info("分佣账单三天后自动确认开始,分佣id为:"+commissionInfoId);
//            commissionInfoService.ok(CollUtil.newArrayList(commissionInfoId));}}}

解释

1.参数message

参数message是当前监听到的key(键)

 第五步:逻辑代码

jedisUtil.getJedis().setex(COMMISSIONINFO_CONFIRMATION_KEY + id, EXPIRETIME, "commissionInfo");

http://www.yayakq.cn/news/747203/

相关文章:

  • ppt做视频的模板下载网站有哪些内容图片叠加网站
  • joomla 2.5:你的网站建设_使用与管理 pdf重庆网站开发
  • 东莞市微网站官方网站公司网站制作
  • 公司网站建设有哪些公司可以做seo推广费用需要多少
  • 中国风网站模板html网站生成器
  • 网站开发大学宁夏 网站开发westte
  • 昆明专业网站制作公司营销推广模式
  • 建网站免费咨询国家备案查询
  • 关键词查询的分析网站网站右侧悬浮代码
  • 上海网站建设公司排行成绩查询
  • 深圳seo网站设计唐山地方志网站建设
  • 行业门户网站设计潍坊网站的公司电话
  • 云空间的网站网站响应式图片切换代码
  • 杭州旅游 网站建设wordpress upgrade文件夹
  • 品牌建设工作总结网站优化分析
  • 东莞网站维护php移动网站开发
  • 石家庄便宜做网站湖南系统开发
  • 临沂网站建设那家好app项目开发教程
  • 登录建设厅网站的是企业锁吗公关公司的优势
  • 南通做网站的wordpress inc文件夹
  • 自己做的网站能干站什么济南网站建设平台
  • seo整站优化解决方案淘宝客怎么做推广
  • 可以自己做歌曲的网站番禺人才网参考资料答案
  • 哪些网站是用php开发的广告设计培训班
  • html5 jsp做网站可以么正品率最高的购物网站
  • 网站建设公司中心电影网站备案
  • 十大货源网站大全最好的电商平台
  • 如何做公司的英文网站dede网站建站教程
  • 租好服务器咋做网站呢建娱乐网站
  • 网站图片计时器怎么做网站建设计划