Java如何编写商城订单超时自动取消的代码实现?
- 内容介绍
- 文章标签
- 相关推荐
本文共计972个文字,预计阅读时间需要4分钟。
多数B2C商城项目都有限时活动,用户下单后若超时未支付,订单状态将自动变为已取消。实现这一功能有多种方法,本文介绍一种适用于大量比价的需求实现方式。
大多数的B2C商城项目都会有限时活动,当用户下单后都会有支付超时时间,当订单超时后订单的状态就会自动变成已取消 ,这个功能的实现有很多种方法,本文的实现方法适合大多数比较小的商城使用。
实现原理:
利用 jdk 的 DelayQueue的阻塞队列的特性实现。在项目启动时开启一个线程处理 DelayQueue 队列里弹出的超时订单对象,订单未超时该线程处于等待中。
DelayQueue的简单介绍:
DelayQueue类的主要作用:是一个无界的BlockingQueue,用于放置实现了Delayed接口的对象,其中的对象只能在其到期时才能从队列中取走。这种队列是有序的,即队头对象的延迟到期时间最长。注意:不能将null元素放置到这种队列中。
本文共计972个文字,预计阅读时间需要4分钟。
多数B2C商城项目都有限时活动,用户下单后若超时未支付,订单状态将自动变为已取消。实现这一功能有多种方法,本文介绍一种适用于大量比价的需求实现方式。
大多数的B2C商城项目都会有限时活动,当用户下单后都会有支付超时时间,当订单超时后订单的状态就会自动变成已取消 ,这个功能的实现有很多种方法,本文的实现方法适合大多数比较小的商城使用。
实现原理:
利用 jdk 的 DelayQueue的阻塞队列的特性实现。在项目启动时开启一个线程处理 DelayQueue 队列里弹出的超时订单对象,订单未超时该线程处于等待中。
DelayQueue的简单介绍:
DelayQueue类的主要作用:是一个无界的BlockingQueue,用于放置实现了Delayed接口的对象,其中的对象只能在其到期时才能从队列中取走。这种队列是有序的,即队头对象的延迟到期时间最长。注意:不能将null元素放置到这种队列中。

