Преглед на файлове

调整翻转昨天未消费的订单的定时任务执行时间段和频率

houweiyu преди 4 години
родител
ревизия
4258a08c9f
променени са 1 файла, в които са добавени 10 реда и са изтрити 29 реда
  1. 10 29
      dinner-core/src/main/java/com/fdage/task/ReInitDeskStatusTask.java

+ 10 - 29
dinner-core/src/main/java/com/fdage/task/ReInitDeskStatusTask.java

@@ -1,13 +1,10 @@
 package com.fdage.task;
 
-import com.fdage.base.entity.TmDesk;
 import com.fdage.base.entity.TmOrder;
 import com.fdage.base.enums.OrderStatusEnum;
-import com.fdage.base.service.impl.TmDeskServiceImpl;
 import com.fdage.base.service.impl.TmOrderServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.EnableScheduling;
@@ -21,7 +18,7 @@ import java.util.List;
  * 2 * @Author: Abner
  * 3 * @Date: 2021/3/4 20:08
  * 4 每日凌晨重置已经预定成功,但是未来消费的订单的状态
- *  //TODO:这里需要声明专用的线程池,不使用默认的线程池
+ * //TODO:这里需要声明专用的线程池,不使用默认的线程池
  */
 @Component
 @EnableScheduling
@@ -32,46 +29,30 @@ public class ReInitDeskStatusTask {
     @Autowired
     private TmOrderServiceImpl orderService;
 
-    @Autowired
-    private TmDeskServiceImpl deskService;
-
     /**
      * 默认是fixedDelay 上一次执行完毕时间后执行下一轮
-     * 凌晨0点到1点之间,每隔15分钟执行一次
+     * 凌晨0点到23点之间,每隔15分钟执行一次,只捞取预定日期是昨天的
+     * 订单,然后将其状态翻转为失效状态
      * 支持幂等
      */
-    @Scheduled(cron = "0 */5 0-1 * * ?")
+    @Scheduled(cron = "0 */15 0-23 * * ?")
     @Transactional(rollbackFor = Exception.class)
     public void run() throws InterruptedException {
         log.info("========每日凌晨初始化未使用的预定订单定时任务=====开始执行=======");
         List<TmOrder> unUsedOrderList = orderService.getUnUserOrder();
         int orderCount = 0;
-        if(!CollectionUtils.isEmpty(unUsedOrderList)){
-            for ( TmOrder order  : unUsedOrderList) {
+        if (!CollectionUtils.isEmpty(unUsedOrderList)) {
+            for (TmOrder order : unUsedOrderList) {
                 TmOrder dbOrder = orderService.getSelectByUpdate(order.getId());
-                if(null == dbOrder){
-                    log.info("订单[{}]抢锁失败,无法将其更新为已失效的状态" , order.getOrderNo());
-                }else{
+                if (null == dbOrder) {
+                    log.info("订单[{}]抢锁失败,无法将其更新为已失效的状态", order.getOrderNo());
+                } else {
                     dbOrder.setStatus(OrderStatusEnum.ORDER_USE_TIMEOUT.getStatus());
                     orderService.updateWithId(dbOrder);
                     orderCount += 1;
                 }
             }
         }
-        List<TmDesk> orderedDeskList = deskService.getOrderedDeskList();
-        int countDesk = 0;
-        if(!CollectionUtils.isEmpty(orderedDeskList)){
-            for (TmDesk desk : orderedDeskList) {
-                TmDesk dbDesk = deskService.getBySelectForUpdate(desk.getId());
-                if(null == dbDesk){
-                    log.info("餐桌[{}]抢锁失败,无法将其更新为已可预订的状态" , desk.getId());
-                }else{
-                    dbDesk.setStatus(0);
-                    deskService.updateWithId(dbDesk);
-                    countDesk += 1;
-                }
-            }
-        }
-        log.info("========每日凌晨初始化未使用的预定订单定时任务=====执行完成{}个订单,{}个餐桌=======" , orderCount , countDesk);
+        log.info("========每日凌晨初始化未使用的预定订单定时任务=====执行完成{}个订单=======", orderCount);
     }
 }