JobDataMap 更新_04
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                JobDataMap 更新_04
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.                        
                                第2篇講述了怎樣給job傳遞參數(shù)或者隨機(jī)數(shù),但是,這個(gè)隨機(jī)數(shù)不會(huì)更新,舉個(gè)例子,執(zhí)行第一次job的時(shí) 隨機(jī)數(shù)3 ,執(zhí)行第2次job,隨機(jī)數(shù)仍然是3,因?yàn)閳?zhí)行每一次job都會(huì)實(shí)例化job實(shí)例對(duì)象
JobDataMap更新的使用場(chǎng)景:
 舉個(gè)例子,執(zhí)行第一次job的時(shí)隨機(jī)數(shù)3 ,間隔5秒,執(zhí)行第2次job,隨機(jī)數(shù)仍然是3+5-8
 使用@PersistJobDataAfterExecution可更新JobDataMap
 JobDataMap更新示例
代碼示例:
package com.gblfy;import com.gblfy.job.MyJob; import org.quartz.*; import org.quartz.impl.StdSchedulerFactory;import java.util.Random;public class QuartzStart {public static void main(String[] args) throws SchedulerException {//創(chuàng)建SchedulerScheduler scheduler = StdSchedulerFactory.getDefaultScheduler();scheduler.start();Random random = new Random();int count = random.nextInt(10);//創(chuàng)建JobDetailJobDetail jobDetail = JobBuilder.newJob(MyJob.class)//唯一標(biāo)識(shí).withIdentity("jobDetail1", "group1")//添加參數(shù)通過usingJobData方法,傳遞給job.usingJobData("count",count).build();//創(chuàng)建TriggerTrigger trigger = TriggerBuilder.newTrigger()//立即執(zhí)行.startNow()//任務(wù)周期.withSchedule(SimpleScheduleBuilder.simpleSchedule()//間隔周期 單位s.withIntervalInSeconds(5)//一直執(zhí)行.repeatForever()).build();//把jobDetail和trigger注冊(cè)到scheduler中scheduler.scheduleJob(jobDetail, trigger);try {Thread.sleep(60000);} catch (InterruptedException e) {e.printStackTrace();}scheduler.shutdown();} }job
package com.gblfy.job;import lombok.Getter; import lombok.Setter; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.quartz.PersistJobDataAfterExecution;import java.time.LocalTime;@PersistJobDataAfterExecution public class MyJob implements Job {@Getter@Setterprivate int count;@Overridepublic void execute(JobExecutionContext context) throws JobExecutionException {LocalTime localTime = LocalTime.now();count++;context.getJobDetail().getJobDataMap().put("count",count);System.out.println(localTime.toString() + "----count的值=" + count);} }總結(jié)
以上是生活随笔為你收集整理的JobDataMap 更新_04的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: Ant-Design-Vue 安装
 - 下一篇: Flowable 数据库表结构 ACT_