# delay-executor **Repository Path**: yuanheqiuye/delay-executor ## Basic Information - **Project Name**: delay-executor - **Description**: 对于订单超时删除场景的简单实现 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-06-24 - **Last Updated**: 2022-10-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # delay-executor ## 介绍 对于订单超时(倒计时)删除场景的实现,不依赖任何第三方包 ## 原理 1. 构建一个以秒为单位指定大小(即倒计时时间)的转盘,转盘每秒转盘会转一格。 2. 将倒计时对象放入转盘最后一格(即当前格子的上一格) 3. 转盘每转一格取出当前格子中的对象,并交由回调函数执行。 ## 使用 #### 初始化(项目启动时) business_key: 对应业务类型,一个系统可以存在多个倒计时场景,可以分别指定business_key, 倒计时时间 ``` //初始化delay executor, 在项目启动后执行一次 Turntable turntable = new Turntable<>("business_key", 10, dataList -> { //回调函数,此处是超时时候的处理逻辑,根据业务自己编写,比如超时删除订单 for(SaleBill bill : dataList){ //同一时刻可能有多个订单到期,循环处理 } }); DelayHelper.register(turntable); ``` #### 使用 ``` DelayHelper.use("business_key").add(new SaleBill()); ``` ## 测试示例 见:Demo.java