From 9bcc40d213a44498c46dae5e678e592b918b40b0 Mon Sep 17 00:00:00 2001 From: rentaiming <806181062@qq.com> Date: 星期四, 30 五月 2024 18:33:54 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/async/AsyncMethodService.java | 27 ++++++++++++++++----------- 1 files changed, 16 insertions(+), 11 deletions(-) diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/async/AsyncMethodService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/async/AsyncMethodService.java index a0a2954..fe612a3 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/async/AsyncMethodService.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/async/AsyncMethodService.java @@ -1,5 +1,6 @@ package com.ruoyi.goods.service.async; +import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.goods.domain.GoodsGroupPurchase; @@ -13,13 +14,14 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Async; -import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; /** * @author mitao * @date 2024/5/24 */ -@Component +@Service @Slf4j @RequiredArgsConstructor public class AsyncMethodService { @@ -28,6 +30,7 @@ private final SysUserClient sysUserClient; @Async + @Transactional(rollbackFor = Exception.class) public void seckillScheduleTask(GoodsSeckill goodsSeckill) { LocalDateTime startTime = goodsSeckill.getStartTime(); LocalDateTime endTime = goodsSeckill.getEndTime(); @@ -50,6 +53,7 @@ } @Async + @Transactional(rollbackFor = Exception.class) public void groupPurchaseScheduleTask(GoodsGroupPurchase groupPurchase) { LocalDateTime startTime = groupPurchase.getStartTime(); LocalDateTime endTime = groupPurchase.getEndTime(); @@ -77,14 +81,15 @@ private void handleEndDelayTask(Long id, DelayTaskEnum delayTaskEnum, LocalDateTime endTime) { String endTaskKey = delayTaskEnum.getCode() + "-" + id; DelayTask endDelayTask = sysUserClient.getDelayTask( - endTaskKey).getData(); + endTaskKey, SecurityConstants.INNER).getData(); // 如果延时任务为空,创建延时任务控制活动定时开始和结束 Duration duration = Duration.between(LocalDateTime.now(), endTime); if (StringUtils.isNull(endDelayTask)) { createEndDelayTask(endTime, endTaskKey, duration); } else { if (!endDelayTask.getExecuteTime().isEqual(endTime)) { - sysUserClient.deleteDelayTask(endTaskKey); + sysUserClient.deleteDelayTask(endTaskKey, + SecurityConstants.INNER); redisService.deleteObject(endTaskKey); createEndDelayTask(endTime, endTaskKey, duration); } @@ -103,18 +108,18 @@ endDelayTask.setCreateTime(LocalDateTime.now()); endDelayTask.setExecuteTime(endTime); endDelayTask.setRedisKey(seckillEndTaskKey); - sysUserClient.addDelayTask(endDelayTask); + sysUserClient.addDelayTask(endDelayTask, SecurityConstants.INNER); } private void handleStartDelayTask(Long id, DelayTaskEnum delayTaskEnum, LocalDateTime startTime, Long timeout) { String startTaskKey = delayTaskEnum.getCode() + "-" + id; - //查询延时任务 - DelayTask startDelayTask = sysUserClient.getDelayTask( - startTaskKey).getData(); redisService.setCacheObject( startTaskKey, startTime, timeout, TimeUnit.SECONDS); + //查询延时任务 + DelayTask startDelayTask = sysUserClient.getDelayTask( + startTaskKey, SecurityConstants.INNER).getData(); if (StringUtils.isNull(startDelayTask)) { startDelayTask = new DelayTask(); startDelayTask.setDelFlag(0); @@ -122,11 +127,11 @@ startDelayTask.setExecuteTime(LocalDateTime.now().plusSeconds(timeout)); startDelayTask.setRedisKey( startTaskKey); - sysUserClient.addDelayTask(startDelayTask); + sysUserClient.addDelayTask(startDelayTask, SecurityConstants.INNER); } else { if (!startDelayTask.getExecuteTime().isEqual(startTime)) { sysUserClient.deleteDelayTask( - startTaskKey); + startTaskKey, SecurityConstants.INNER); redisService.deleteObject( startTaskKey); startDelayTask.setDelFlag(0); @@ -134,7 +139,7 @@ startDelayTask.setExecuteTime(LocalDateTime.now().plusSeconds(timeout)); startDelayTask.setRedisKey( startTaskKey); - sysUserClient.addDelayTask(startDelayTask); + sysUserClient.addDelayTask(startDelayTask, SecurityConstants.INNER); } } log.info(">>>>>>>>>>>>>>>>>>>>延时任务{}执行了<<<<<<<<<<<<<<<<<<<<", startTaskKey); -- Gitblit v1.7.1