首页 新闻 会员 周边

spring quartz 定时任务接口中事务标签无效

0
悬赏园豆:20 [待解决问题]

spring quartz 中定制一个一分钟执行一次的接口,接口方法A中调用另一个方法B,给A方法加上事务,A方法出错时,B方法回滚。现在希望A方法出错,B方法仍可继续执行,在B方法上定义传播行为Propagation.NOT_SUPPORTED,但并不起作用,求大神赐教,感谢~

quartz 中定制的接口

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false">
<!-- Triggers集成 -->
<property name="triggers">
      <list>
          <ref bean="salaryBillCronTrigger" />
    </list>
</property>
</bean>


<bean id="salaryBillCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail" ref="salaryBill" />
        <!-- 每分钟执行一次 -->
        <property name="cronExpression" value="0 0/1 * * * ? *" />
</bean>

    <bean id="salaryBill" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

        <property name="targetObject" ref="salaryBillManager" />
                <!-- 调用方法A:execute -->
        <property name="targetMethod" value="execute" />
        <property name="concurrent" value="false"></property>
    </bean>

<bean id="salaryBillManager" class="com.company.ehr.service.SalaryBillManager"></bean>

接口方法A

package com.company.ehr.service;

@Autowired
private SalaryBillDao salaryBillDao;

@Transactional
public class SalaryBillManager {
           public String execute() throws Exception {
                  ....
                  salaryBillDao.saveObject();
                  ....
           }
}




接口调用方法B

@Transactional(propagation=Propagation.NOT_SUPPORTED)
public boolean saveObject(SalaryBill salaryBill) throws Exception {
           // 该方法中执行数据入库操作
}

疑问:

在postmen 中调用A接口,方法A出错,方法B可正常执行。
疑问:为什么将A接口放在quartz中执行时,B方法不能正常入库。

cxiaoluab的主页 cxiaoluab | 初学一级 | 园豆:26
提问于:2019-04-28 11:31
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册