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);
});
}
}
抛出异常后数据没有回滚 ,求大佬帮忙看下