超时检测场景的方案

2024-01-24  本文已影响0人  M_lear

最常见的场景莫过于订单的超时关单。

方案一:每创建一个订单,在 Java 的 ScheduledThreadPoolExecutor 中添加一个一次性的定时任务(每个定时任务只负责检测一个订单)

优点
  1. 精确。
缺点
  1. 订单量大时,会占用比较多的内存资源。
  2. 复杂性:应用实例变得有状态了,需要考虑应用重启后重建未执行的定时任务。如果有多个应用实例,重建逻辑将会更复杂。

方案二:定期执行的定时任务扫表

优点
  1. 简单,易于控制和实现。
缺点
  1. 有一定的误差。

方案三:消息队列

兼顾准确性和应用实例的无状态性,但需要引入消息队列,增加系统的复杂性。

上一篇 下一篇

猜你喜欢

热点阅读