上丄丅下 2021-06-09 08:41 采纳率: 0%
浏览 398
已结题

springboot 定时执行任务,任务中抛出异常数据没有回滚

package hyd.webser.scheduledTask.task;

import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import hyd.webser.scheduledTask.entity.Gznrb_tableEntity;
import hyd.webser.scheduledTask.entity.Ycsj_tableEntity;
import hyd.webser.scheduledTask.mapper.Gznrb_tableDao;
import hyd.webser.scheduledTask.mapper.Ycsj_tableDao;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import org.springframework.scheduling.support.CronTrigger;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Map;


@Component
public class ycsjScheduledTask implements SchedulingConfigurer {

    private final Gznrb_tableDao gznrb_tableDao;
  

    @Autowired
    public ycsjScheduledTask(Gznrb_tableDao gznrb_tableDao) {
        this.gznrb_tableDao = gznrb_tableDao;
    }


    @Transactional
    public void scheduledTask() {
        // 这里执行数据库curd后 

        
        // 然后抛出异常后数据没有回滚
        throw new RuntimeException("抛出异常!!!");
    }

    @Override
    public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
        scheduledTaskRegistrar.addTriggerTask(() ->
                        // 1 需要定时执行的任务
                        scheduledTask(),
                triggerContext -> {
                    //2.1 从数据库获取执行周期
                    String cron = gznrb_tableDao.getCron("ycsj");
                    //2.2 合法性校验.
                    if (StringUtils.isEmpty(cron)) {
                        cron = "0 0/1 * * * ?";
                    }
                    //2.3 返回执行周期(Date)
                    return new CronTrigger(cron).nextExecutionTime(triggerContext);
                });

    }
}

抛出异常后数据没有回滚 ,求大佬帮忙看下

  • 写回答

2条回答 默认 最新

  • 关注

    那加个回滚处理试试,rollback transaction.

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月13日

悬赏问题

  • ¥15 两台交换机分别是trunk接口和access接口为何无法通信,通信过程是如何?
  • ¥15 C语言使用vscode编码错误
  • ¥15 用KSV5转成本时,如何不生成那笔中间凭证
  • ¥20 ensp怎么配置让PC1和PC2通讯上
  • ¥50 有没有适合匹配类似图中的运动规律的图像处理算法
  • ¥15 dnat基础问题,本机发出,别人返回的包,不能命中
  • ¥15 请各位帮我看看是哪里出了问题
  • ¥15 vs2019的js智能提示
  • ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
  • ¥15 uniapp的h5项目写一个抽奖动画