Spring会监听符合以下格式的Redis消息
private static final Topic TOPIC_ALL_KEYEVENTS = new PatternTopic("__keyevent@*");基于Redis的定时任务能够适用的场景也比较有限 , 但实现上相对简单 , 但对于功能幂等有很大要求 。从使用场景上来说 , 更应该叫做延时任务 。
场景举例:
- 订单下单之后15分钟后 , 用户如果没有付钱 , 系统需要自动取消订单 。
- 红包24小时未被查收 , 需要延迟执退还业务;
- 被动触发 , 对于服务的资源消耗更小;
- Redis的Pub/Sub不可靠 , 没有ACK机制等 , 但是一般情况可以容忍;
- 键空间通知功能会耗费一些CPU
quartz依赖于MySQL , 使用相对简单 , 可多节点部署 , 通过竞争数据库锁来保证只有一个节点执行任务 。没有图形化管理页面 , 使用相对麻烦 。
elastic-job-lite依赖于Zookeeper , 通过zookeeper的注册与发现 , 可以动态的添加服务器 。
- 多种作业模式
- 失效转移
- 运行状态收集
- 多线程处理数据
- 幂等性
- 容错处理
- 支持spring命名空间
- 有图形化管理页面
- 业务日志记录器
- SPI扩展支持
- 故障转移
- 节点监控
- 多样化任务执行结果支持
- FailStore容错
- 动态扩容
- 对spring相对友好
- 有监控和管理图形化界面
- 弹性扩容
- 分片广播
- 故障转移
- Rolling实时日志
- GLUE(支持在线编辑代码 , 免发布)
- 任务进度监控
- 任务依赖
- 数据加密
- 邮件报警
- 运行报表
- 优雅停机
- 国际化(中文友好)
相对而言 , 基于spring task的定时任务最简单快捷 , 而xxl-job的难度主要体现在集成和调试上 。无论是什么样的定时任务 , 你都需要确保:
- 任务不会因为集群部署而被多次执行 。
- 任务发生异常得到有效的处理
- 任务的处理过慢导致大量积压
- 任务应该在预期的时间点执行
来源:
juejin.cn/post/6930912870058328071
推荐阅读
- 红茶与运动,红茶的主要功效与作用
- 游泳有哪些主要类别
- 发型|有这几种长相的女生,无论什么发型都好看!
- 杜伽K330w Plus评测:小巧精致、手感一流的热插拔机械键盘
- 虚拟主机和云服务器有什么区别?
- 心脏增大主动脉硬化的危害有哪些?
- 滑膜炎吃什么消炎药好
- AI知识点汇总
- 红茶放枣,盛茶的主要功效与作用是
- 高铁|直击郑州市民超市囤货:郑州高铁站多名工作人员感染 主城区实行足不出区
