春季有状态工作的两种实现方式的区别

时间:2018-07-31 08:05:30

标签: spring-mvc quartz-scheduler

在理解项目中的某些代码时,我遇到了一些问题,他们使用两种方法来实现有状态作业。

1. 第一种方式:-在这里,我们将Concurrent设置为false。表示作业不会同时执行。

<bean id="migrateDocsToFTP"  class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">    
 <property name="targetObject" ref="migrateDocsToFTPTask" />
 <property name="targetMethod" value="migrateDocs" />
 <property name="concurrent" value="false" />
</bean>

2. 第二种方法:-通过使用jobClass属性并扩展QuartzJobBean并在类定义中实现StatefulJob

<bean name="migrateJob" class="org.springframework.scheduling.quartz.JobDetailBean">
    <property name="jobClass" value="com.xyz.abcService.scheduler.migrateDocsToFTPTask"/>
</bean> 

第二种方式,我们使用了Stateful,它也像this answer中提到的concurrent:false一样工作。两者之间可以有一些细微的区别吗??

0 个答案:

没有答案