专栏名称: 微观技术
前阿里技术专家,拿过 鹅厂、百度、华为 等6家大厂offer,博客专家,出过专利。负责过电商交易、社区团购、流量营销等业务
今天看啥  ›  专栏  ›  微观技术

订单支付超时如何处理?盘点延迟任务的11种实现方式,你知道几种?

微观技术  · 公众号  ·  · 2024-07-02 08:06

文章预览

大家好,我是Tom哥。 延迟任务在我们日常生活中比较常见,比如订单支付超时取消订单功能,又比如自动确定收货的功能等等。 这篇文章从实现到原理来盘点延迟任务的11种实现方式,没有绝对的好坏,只是适用场景不大相同。 DelayQueue DelayQueue是JDK提供的api,是一个延迟队列 DelayQueue泛型参数得实现Delayed接口,Delayed继承了Comparable接口。 getDelay 方法返回这个任务还剩多久时间可以执行,小于0的时候说明可以这个延迟任务到了执行的时间了。 compareTo 这个是对任务排序的,保证最先到延迟时间的任务排到队列的头。 来个demo @Getter public   class   SanYouTask   implements   Delayed   {      private   final  String taskContent;      private   final  Long triggerTime;      public   SanYouTask (String taskContent, Long delayTime)   {          this .taskContent = taskContent;       ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览