国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

spring-quartz普通任務與可傳參任務

2019-11-09 20:28:09
字體:
來源:轉載
供稿:網(wǎng)友

轉自http://www.thinksaas.cn/topics/0/679/679979.html

兩者區(qū)別與作用:

普通任務:

總調度(SchedulerFactoryBean)–> 定時調度器(CronTriggerFactoryBean) –> 調度明細自定義執(zhí)行方法bean(MethodInvokingJobDetailFactoryBean) –>調度bean(我們定義的job類)

可傳參任務:

總調度(SchedulerFactoryBean)–> 定時調度器(CronTriggerFactoryBean) –> 調度明細bean(JobDetailFactoryBean)

如上是我們在配置調度器時的具體步驟及相互之間的依賴,區(qū)別主要在調度明細bean上,普通任務是(MethodInvokingJobDetailFactoryBean),而可傳參任務是(JobDetailFactoryBean):   1)普通任務可以自定義執(zhí)行方法,也就是說在其配置的調度bean(我們定義的job類)中我們可以自定義調度器最終執(zhí)行的方法,可以叫work1也可以叫work2,and so on。而且要記住的一點,必須是無入?yún)⒌姆椒ǎ。。。ㄗ隽艘粋€測試,測試目的是看通過此類型調度類型是否也能傳入?yún)?shù)所以定義了一個帶入?yún)⒌淖远x方法即public void work(JobExecutionContext jobExecutionContext),最中測試結果是sPRing quartz會報找不到work方法及No such method work(),其默認執(zhí)行我們生命的work無入?yún)⒌姆椒ā?  2)可傳參任務必須繼承QuartzJobBean,重寫protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException方法,其中JobExecutionContext就是我們在定義調度器明細時傳入?yún)?shù)的上下文,我們可以通過JobExecutionContext取出傳入的map,調度任務最終執(zhí)行的就是executeInternal方法,使用該調度明細任務無法使用自定義方法。


普通任務

public class ImportCustomerScheduler { private Logger logger = LoggerFactory.getLogger(ImportCustomerScheduler.class); @Autowired private CustomerErpRelationManager customerErpRelationManager; public void execute() { doWork(); } private void doWork() { logger.info(" truncate customer_erp_relation begin " + JSON.toJSONString(new Date())); customerErpRelationManager.truncateCustomer(); logger.info(" truncate customer_erp_relation end " + JSON.toJSONString(new Date())); logger.info(" import customer_org from erp " + JSON.toJSONString(new Date())); try { customerErpRelationManager.importCustomer(); } catch (Exception e) { logger.error("doWork", e); } }}<bean id="importCustomerScheduler" class="com.yimayhd.carpool.schedule.ImportCustomerScheduler"/><bean id="importCustomerSchedulerBean" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="importCustomerScheduler"/> <property name="targetMethod" value="execute"/> <property name="concurrent" value="false"/></bean> <bean id="importCustomerSchedulerCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="jobDetail" ref="importCustomerSchedulerBean"/> <property name="cronExpression" value="${scheduler.importCustomer}"/> </bean><bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="importCustomerSchedulerCronTrigger"/> </list> </property></bean>

可傳參任務

public class ImportTourGroupsScheduler extends QuartzJobBean { private Logger logger = LoggerFactory.getLogger(ImportTourGroupsScheduler.class); @Autowired private TourGroupManager tourGroupManager; @Override protected void executeInternal(JobExecutionContext context) throws JobExecutionException { logger.info(" import tourGroups from erp " + JSON.toJSONString(new Date())); try { String bizIds = (String) context.getJobDetail().getJobDataMap().get("bizIds"); logger.info("tourGroupManager.importTourGroup========== start============="); tourGroupManager.retryImportGroupDataWithExcep(bizIds); logger.info("tourGroupManager.importTourGroup========== end============="); } catch (Exception e) { logger.error("import tourGroups from erp to carcar failed! doWork", e); } }}<bean id="importTourGroupsScheduler" class="com.yimayhd.carpool.schedule.ImportTourGroupsScheduler" /><bean name="context" class="org.quartz.JobDataMap"> <constructor-arg> <map> <entry key="bizIds" value="1"> </entry> </map> </constructor-arg> </bean> <bean id="importTourGroupsSchedulerBean" class="org.springframework.scheduling.quartz.JobDetailFactoryBean"> <property name="jobClass" value="com.yimayhd.carpool.schedule.ImportTourGroupsScheduler" /> <property name="jobDataMap"> <ref bean="context"></ref> </property> </bean><bean id="importTourGroupsSchedulerCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="jobDetail" ref="importTourGroupsSchedulerBean"/> <property name="jobDataMap"> <ref bean="context"></ref> </property> <property name="cronExpression" value="${scheduler.importTourGroups}"/></bean><bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="importTourGroupsSchedulerCronTrigger"/> </list> </property></bean>
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 扬州市| 密云县| 易门县| 彭阳县| 塘沽区| 蓝山县| 周宁县| 迁西县| 静安区| 博爱县| 辽阳市| 江华| 遂宁市| 秦安县| 南京市| 甘肃省| 思南县| 兴化市| 滨州市| 和静县| 芮城县| 许昌市| 奉节县| 河西区| 广汉市| 封开县| 蒙阴县| 岗巴县| 高陵县| 夏邑县| 博野县| 筠连县| 兴城市| 库车县| 水城县| 韶关市| 沙洋县| 石棉县| 石棉县| 凭祥市| 濮阳市|