由于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状态

JOB状态与并发的更多相关文章

  1. nodejs学习笔记_nodejs和PHP在基础架构上的差别--共享状态的并发

    绝大多数对于Node.js的讨论都把关注点放在了处理高并发能力上,做开发的时候一定要明确node内部做出的权衡,以及node应用性能好的原因. node 为javascript引入了一个复杂的概念,: ...

  2. Mysql 查看连接数,状态 最大并发数(赞)

    Mysql 查看连接数,状态 最大并发数(赞)   -- show variables like '%max_connections%'; 查看最大连接数 set global max_connect ...

  3. Mysql 查看连接数,状态 最大并发数

    show status like '%max_connections%'; ##mysql最大连接数set global max_connections=1000 ##重新设置show variabl ...

  4. Mysql 查看连接数,状态 最大并发数 && 怎么设置才合理

    show status like '%max_connections%'; ##mysql最大连接数 set global max_connections=1000 ##重新设置 show varia ...

  5. Mysql 查看连接数,状态 最大并发数,以及设置连接数

    show variables like '%max_connections%'; 查看最大连接数 set global max_connections=1000  重新设置最大连接数 set-vari ...

  6. 031.[转] 从类状态看Java多线程安全并发

    从类状态看Java多线程安全并发 pphh发布于2018年9月16日 对于Java开发人员来说,i++的并发不安全是人所共知,但是它真的有那么不安全么? 在开发Java代码时,如何能够避免多线程并发出 ...

  7. Java并发编程学习笔记(三)——对象的组合

    重要概念: 1.在设计线程安全类的过程中,需要包含以下三个基本要素: (1)找出构成对象状态的所有变量. (2)找出约束状态变量的不变性条件. (3)建立对象状态的并发访问管理策略. 2.

  8. java 并发性和多线程 -- 读感 (一 线程的基本概念部分)

    1.目录略览      线程的基本概念:介绍线程的优点,代价,并发编程的模型.如何创建运行java 线程.      线程间通讯的机制:竞态条件与临界区,线程安全和共享资源与不可变性.java内存模型 ...

  9. java并发编程实践学习(2)--对象的组合

    先验条件(Precondition):某些方法包含基于状态的先验条件.例如,不能从空队列中移除一个元素,在删除元素前队列必须处于非空状态.基于状态的先验条件的操作成为依赖状态操作. 在单线程中,如果某 ...

随机推荐

  1. springboot-6-springSecurity

    一.Spring Security的基本配置 安全需要在设计网站之初就需要做好设计 可以做到: 功能权限 访问权限 菜单权限 这些权限虽然用拦截器过滤器也能实现,但是很麻烦,所以我们一般使用框架实现 ...

  2. java 日期字符串互相转换

    一.把日期转换成字符串 //获取当前时间  Date date = new Date();   //打印date数据类型  System.out.println(date.getClass().get ...

  3. js中的 true 与 false

    可判断为 false 的情况: 0,-0,NaN,undedined,"",false,null,缺省的值 可判断为 true 的情况: 除false的其他情况均可,包括负数.&q ...

  4. [考试总结]noip模拟16

    达成成就,一天更3篇总结. 又是一个暴力场 别问我为什么开局 \(5\) 分钟就问老师为什么 \(T3\) 没有提交的窗口. 开题读题,一路自闭到 \(T3\) ,发现 \(T3\) 可打暴力,所以一 ...

  5. K8s之Prometheus监控

    目录 容器监控与报警 Prometheus prometheus简介 prometheus系统架构 prometheus 安装方式 容器方式安装prometheus operator部署 克隆项目 创 ...

  6. SignalR的客户端.NET Client介绍

    SignalR支持两种客户端:JavaScript Client和.NET Client.一个简单的SignalR例子中的SignalRDemo(点赞页面)就是JavaScript Client(HT ...

  7. Android系统编程入门系列之加载服务Service

    之前几篇文章简单梳理了在Android系统的四大组件之一,最主要的界面Activity中,使应用程序与用户进行交互响应的相关知识点,那对于应用程序中不需要与用户交互的逻辑,又要用到哪些内容呢?本文开始 ...

  8. 每个程序员的必经之路:Hello,world!

    每个程序员的必经之路:Hello,world! Java 源程序 也称源代码,是指未编译的按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令. 在现代程序语言中,源代码可以是以 ...

  9. Github连接远程仓库详细操作

    首先 咱们需要配置ssh密钥   如何生成密钥呢    我们先来看下命令 在桌面新建一个文件夹,命名规范尽量不要使用中文,然后在文件夹内  新建测试文本: 如图   在文件夹内空白处右击进入GIt b ...

  10. .Net Core+分布式配置中心(AgileConfig)

    GitHub上AgileConfig非常详细,以下只是本人学习过程的整理 一.介绍 1.参考地址 https://github.com/dotnetcore/AgileConfig https://w ...