
业务技术方案
文章平均质量分 66
以实际业务场景,提供业务落地实现方案
厉害哥哥吖
呼哧呼哧三碗饭。。。
展开
-
(四)延时任务篇——redisson实现延迟任务实战
上一节内容中介绍了如何使用redis的zset结构实现延迟任务的实战内容,从使用角度来说还是略显繁琐,而且定时任务的方式扫描redis获取过去的任务也会存在任务空转的问题。在此基础上,我们可以使用redisson的阻塞队列,完成延迟任务的实战场景。原创 2024-07-31 19:43:27 · 543 阅读 · 0 评论 -
(三)延时任务篇——通过redis的zset数据结构,实现延迟任务实战
在前一篇内容中我们介绍了如何使用redis key过期失效的监控,完成任务延时关闭的功能,同时官方并不支持使用此种方式实现,由于其安全性较低,存在数据丢失的情况。本节内容是对延迟任务的又一实现方案,通过redis zset的数据结构完成延迟任务。使用一个常量order作为key,订单id作为value值,任务的过期时间作为score值,通过定时任务取前100名的数据,比较score值和当前时间的大小,如果该值小于当前时间,则证明该订单已过期,完成关单的操作,并将该订单数据在redis中删除。原创 2024-07-30 20:20:50 · 634 阅读 · 0 评论 -
(二)延时任务篇——通过redis的key监听,实现延迟任务实战
本节内容是关于使用redis的过期key,通过开启其监听失效策略,模拟订单延迟任务的执行流程。其核心原理是通过使用redis订阅与发布的方式,将过期失效的key通过广播的方式,发布给客户端,客户端可以监听此消息进而消费消息。需要注意的是官方并不推荐此方式,因为其容易造成数据丢失,例如没有客户端消费消息,消息也会丢失。对于一些安全性要求比较低的场景,可以使用此方式实现延迟队列。原创 2024-07-29 19:38:14 · 799 阅读 · 0 评论 -
(一)延时任务篇——延时任务的几种实现方式概述
延时任务是我们在项目开发中经常遇到的场景,例如订单超时30分钟自动取消,邮件5分钟后通知等等,对于这样的应用场景,我们又该如何应对呢,尤其是在微服务环境下,如何保证我们的延迟任务并发问题以及数据安全等等问题。本节内容作者会根据以往的项目开发经验,介绍几种延时任务的实现方案。原创 2024-07-24 19:45:54 · 551 阅读 · 0 评论