码迷,mamicode.com
首页 > 其他好文 > 详细

知识点:Quartz添加事务回滚

时间:2019-12-25 12:52:17      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:size   ack   table   backup   ret   style   exec   ide   finally   

自动任务类:

@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添加事务回滚

标签:size   ack   table   backup   ret   style   exec   ide   finally   

原文地址:https://www.cnblogs.com/nhdlb/p/12095859.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!