zoukankan      html  css  js  c++  java
  • JOB状态与并发

    由于job每次被执行时都会创建一个新的实例,

             jobDetail实例时,要进行数据存储或者,特殊字段操作,需要每次schedul执行job时保留之前的数据,

                那么就需要job在有状态下保持之前的数据信息,从而避免每次scheduler从新创建新的实例的无状态、

    JobDetail jobDetail = JobBuilder.newJob(QuartzJob.class)
    .withIdentity("myjob", "group")
    //jobDataMap 在构建JobDetail时,可以将数据放入JobDataMap,
    .usingJobData("jobSays", "Hello World!")
    .usingJobData("myFloatValue", 3.14f)
    .usingJobData("count", 0)
    .build();





    /**
    * :将该注解加到job类上,告诉Quartz不要并发地执行同一个job定义(这里指特定的job类)的多个实例。
    * 请注意这里的用词。拿前一小节的例子来说,
    * 如果“SalesReportJob”类上有该注解,
    * 则同一时刻仅允许执行一个“SalesReportForJoe”实例,
    * 但可以并发地执行“SalesReportForMike”类的一个实例。
    * 所以该限制是针对JobDetail的,而不是job类的。
    * 但是我们认为(在设计Quartz的时候)应该将该注解放在job类上,
    * 因为job类的改变经常会导致其行为发生变化。
    */
    @DisallowConcurrentExecution //以上是官方文档一堆废话,总结一句就是,限制job的实例(jobDetai)被并发执行
    /**此注解
    * 多次调用job时都会对job进行持久化,即保存一些特定信息
    没有此注解每次实例都会创建一个jobDataMap不会保存上次创建的信息
    */
    @PersistJobDataAfterExecution
    public class QuartzJob implements Job{
     @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
    ++count;
    System.out.println(jobExecutionContext.getJobDetail().getKey().getName()+"被第"+count+"次调用");
    jobExecutionContext.getJobDetail().getJobDataMap().put("count",count);
    // System.out.println("此处获取的是融合Map的次数比指定jobDwtail的jobDetailMap次数少一次");
    // jobExecutionContext.getMergedJobDataMap().put("count",count);
    // System.out.println(jobExecutionContext.getMergedJobDataMap().getIntValue("count"));

    }
    }


    myjob被第1次调用
    myjob被第2次调用
    myjob被第3次调用

    记录jobDetail状态
    一点点学习,一丝丝进步。不懈怠,才不会被时代淘汰
  • 相关阅读:
    CentOS 7修改用户密码
    Java EE(Web)大方向
    【Spring学习随笔】4. Spring AOP
    Git从本地上传项目到Github
    Vue及Vue-Cli的环境搭建(Windows)
    【Spring学习随笔】3. Spring Bean
    SSM框架随笔
    IDEA中Spring配置错误:class path resource [.xml] cannot be opened because it does not exist
    Jsp技术
    【Spring学习随笔】2. Spring IoC
  • 原文地址:https://www.cnblogs.com/wangbiaohistory/p/12040157.html
Copyright © 2011-2022 走看看