Quartz:Quartz添加事务回滚报错
自动任务类:
@PersistJobDataAfterExecution
@DisallowConcurrentExecution
public class ReCodeBack implements Job { private static final Logger LOGGER = LoggerFactory.getLogger(ReCodeBack.class); @Autowired
ReCodeBackTag reCodeBackTag; @Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
reCodeBackTag.backupsReCode();
} }
自动任务注解:
@PersistJobDataAfterExecution
@DisallowConcurrentExecution
任务需求是需要添加事务
运用spring注解@Transactional注解
/**
* 添加(删除)表数据
* @param object
* @param modular
* @return
*/
@Transactional(rollbackFor = Exception.class)
public int tableOperation (Object object,String modular){
int count = 0;
try{
.......
}catch (Exception e) {
LOGGER.info("[添加(删除)表数据] ERROR :{}", e.getMessage());
//事务回滚
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//任务异常中断,立即重新运行
JobExecutionException e2 = new JobExecutionException(e);
e2.setRefireImmediately(true);
throw e2;
}finally {
return count;
}
}
注意:当作者在自动任务类进行使用@Transactional注解时,程序会进行报错(太懒……原因没搞清楚,后续会补上),所以作者分成了两个类来编写的,一个定时调用类,一个业务类,如上代码。
Quartz:Quartz添加事务回滚报错的更多相关文章
- sprint test 添加事务回滚机制
1.原因: 单元测试的时候频繁操作数据库需要修改很多数据,造成不必要的操作,添加事务之后就可以重复对一条数据进行操作,并且在返回结果后进行回滚. 2.解决: 原先继承的是 AbstractJUnit ...
- Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
1. 添加一个新对象 前面介绍了映射到实体表的映射类User,如果我们想将其持久化(Persist),那么就需要将这个由User类建立的对象实例添加到我们先前创建的Session会话实例中: 复制代码 ...
- Spring中@Transactional事务回滚
转载: Spring中@Transactional事务回滚 一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用.下面举个栗子:比如一个部 ...
- Spring中的事务回滚机制
初学者笔记 问题:在Java项目汇中,添加@Transactional注解,报错之后,事务回滚未生效,数据仍插入数据库中.经查看报错位置位于新增成功之后.空指针异常. 一.特性 先了解一下@Trans ...
- Spring异常抛出触发事务回滚
Spring.EJB的声明式事务默认情况下都是在抛出unchecked exception后才会触发事务的回滚 /** * 如果在spring事务配置中不为切入点(如这里的切入点可以定义成test*) ...
- 【Java EE 学习 19】【使用过滤器实现全站压缩】【使用ThreadLocal模式解决跨DAO事务回滚问题】
一.使用过滤器实现全站压缩 1.目标:对网站的所有JSP页面进行页面压缩,减少用户流量的使用.但是对图片和视频不进行压缩,因为图片和视频的压缩率很小,而且处理所需要的服务器资源很大. 2.实现原理: ...
- spring事务回滚问题
刚刚接到一个上家公司同事的一个电话,问我为什么service方法事务不会滚了,日志打印了,调用webservice报错. 我让他把这个调用执行webservice的方法截图发给我,如下: publ ...
- Spring 事务回滚机制详解
1:事务原理 1.2:aop/动态代理 类路径:org/springframework/aop/framework/CglibAopProxy.java ReflectiveMethodInvocat ...
- spring boot 使用 mybatis 开启事务回滚 的总结
1.前言 以前没有使用mybatis,可以关闭自动提交,然后做sql操作,对操作进行catch捕获异常, 如果没有异常则commit 提交 ,有异常则 rollback 回滚,新增的数据则删除 ,修改 ...
随机推荐
- STM32之HAL库、标准外设库、LL库(STM32 Embedded Software)-(转载)
STM32 Embedded Software 工作以来一直使用ST的STM32系列芯片,ST为开发者提供了非常方便的开发库.到目前为止,有标准外设库(STD库).HAL库.LL库 三种.前两者都是 ...
- Jmeter(四十六) - 从入门到精通高级篇 - Jmeter之网页图片爬虫-下篇(详解教程)
1.简介 上一篇介绍了爬取文章,这一篇宏哥就简单的介绍一下,如何爬取图片然后保存到本地电脑中.网上很多漂亮的壁纸或者是美女.妹子,想自己收藏一些,挨个保存太费时间,那你可以利用爬虫然后批量下载. 2. ...
- Docker之tomcat安装与部署项目
docker安装tomcat docker pull tomcat:8.5 等待... (1)正常的方式启动tomcat docker run -d --name tomcat -p 80:808 ...
- Jmeter- 笔记4 - 参数化 、函数
参数化 调用变量的用法: ${变量名} 参数化第一 二种. 定义变量的两种方法: 配置元件(Config Element) -> 用户定义的变量(User Defined Variables) ...
- 在Visual Studio 中使用git——分支管理-下(九)
在Visual Studio 中使用git--什么是Git(一) 在Visual Studio 中使用git--给Visual Studio安装 git插件(二) 在Visual Studio 中使用 ...
- 深度人脸识别:CVPR2020论文要点
深度人脸识别:CVPR2020论文要点 Towards Universal Representation Learning for Deep Face Recognition 论文链接:https:/ ...
- GPU加速库AmgX
GPU加速库AmgX AmgX提供了一条简单的途径来加速NVIDIA GPU上的核心求解器技术.AmgX可以为模拟的计算密集型线性求解器部分提供高达10倍的加速度,特别适合于隐式非结构化方法. 它是一 ...
- 使用Runtime执行推理(C++)
使用Runtime执行推理(C++) 概述 通过MindSpore Lite模型转换后,需在Runtime中完成模型的推理执行流程.本教程介绍如何使用C++接口编写推理代码. Runtime总体使用流 ...
- 什么是视觉Visual SLAM
什么是视觉Visual SLAM What Is Visual SLAM? What are the origins of visual SLAM? and what are some other a ...
- kube-proxy IPVS 模式的工作原理
原文链接:https://fuckcloudnative.io/posts/ipvs-how-kubernetes-services-direct-traffic-to-pods/ Kubernete ...