解决.quartz.ObjectAlreadyExistsException: Unable to store Job : ‘jyGroup.jyJob‘, because one already

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

1. 报错如题:

定时任务出现异常 : org.quartz.ObjectAlreadyExistsException: Unable to store Job : 'jyGroup.jyJob', because one already exists with this identification.
2018-07-19 09:36:48.002  INFO 6128 --- [pool-1-thread-1] gentle.test.UserSyncTask   

2. 原因:

在配置文件中我已经配置了启动一个定时任务:UserSyncTask ,但在 UserSyncTask 类中我又再次声明了另外一个同名同组的任务(由 Show 类实现业务)。  这样这个任务就开启了2次。

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"xmlns:task="http://www.springframework.org/schema/task"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd"><bean id="userSyncTask" class="gentle.test.UserSyncTask"></bean><task:scheduled-tasks><!--每 2 秒执行一次--><task:scheduled ref="userSyncTask" method="cronDepartmentsAndUsersJob" cron="0/2 * * * * ?" /></task:scheduled-tasks></beans>
package gentle.test;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Date;public class UserSyncTask {private final Logger logger = LoggerFactory.getLogger(this.getClass());@ResourceSchedulerTest test;@ResourceShow show;public void cronDepartmentsAndUsersJob() {logger.info("\n\n 定时--开始,当前时间: " + dateFormat().format(new Date()));test.addJob();logger.info("\n\n 定时--结束,当前时间:" + dateFormat().format(new Date()));}private SimpleDateFormat dateFormat() {return new SimpleDateFormat("HH:mm:ss");}
}
package gentle.test;import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;import java.util.Date;/*** @author silence* @date 2018/7/17 11:37*/
@Service("show")
public class Show implements Job {private static Logger _log = LoggerFactory.getLogger(Show.class);@Overridepublic void execute(JobExecutionContext arg0) throws JobExecutionException {_log.info("\n\n-------------------------------\n " +"It is running and the time is : " + new Date()+"\n-------------------------------\n");}}

3. 解决: 直接在 UserSyncTask 中调用 业务实现类 Show 就可以了,不用再把任务完全声明一次:这样就只有一个任务了 。

   或者就在 UserSyncTask 类中声明,main 方法就可以开启定时任务,不用再加配置文件了。

我是 springboot 工程,所以选择第一种方法:

package gentle.test;import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Date;public class UserSyncTask {private final Logger logger = LoggerFactory.getLogger(this.getClass());@ResourceSchedulerTest test;@ResourceShow show;public void cronDepartmentsAndUsersJob() {logger.info("\n\n 定时--开始,当前时间: " + dateFormat().format(new Date()));
//        test.addJob();try {show.execute(null);} catch (JobExecutionException e) {e.printStackTrace();}logger.info("\n\n 定时--结束,当前时间:" + dateFormat().format(new Date()));}private SimpleDateFormat dateFormat() {return new SimpleDateFormat("HH:mm:ss");}
}

4. 正常运行:

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/448949.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WeMos-D1R2的使用

2019独角兽企业重金招聘Python工程师标准>>> WeMos介绍 WeMos-D1R2一个基于ESP8266-12 Wifi模块的Arduino-UNO开发板。也就是说&#xff0c;WeMos-D1R2是一个具有wifi功能的Arduino开发板&#xff0c;但WeMos-D1R2与Arduino-UNO的引脚不是一一对应的&#xff0c;其对…

职场中什么样的员工最易发展?

职场中什么样的员工最“抢手”?也许你会说有能力的人&#xff0c;没错有能力的人竞争力一定很强&#xff0c;但是能力会随着经验的丰富而慢慢变强&#xff0c;所以它不足以某个人在职场中站稳脚主要原因&#xff0c;反而是一个人的工作态度决定着他在职场中的发展方向与前景。…

PAT 1048 数字加密

题目链接 一开始我还以为以b的长度为基准&#xff0c;因为b是要加密的数据啊&#xff0c;看了答案才知道原来要以最长的长度为基准。但是这道题还有个bug&#xff0c;就是当你算出的结果前面有0竟然也可以通过&#xff0c;比如a为1111&#xff0c;b为1111&#xff0c;答案是020…

RabbitMQ MQTT协议和AMQP协议

RabbitMQ MQTT协议和AMQP协议 1 序言... 1 1.1 RabbitMq结构... 1 1.2 RabbitMq消息接收... 4 1.3 Exchange种类和消息发送模式... 4 1.4 RabbitMq的协议... 6 1.4.1 AMQP协议... 6 1.4.2 MQTT协议... 8 2 RabbitMq服务器安装和使用…

Quartz 定时任务(Scheduler)的 3 种实现方式

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 PS&#xff1a;第 3 种最简单。 一、引入 jar 。 <!-- quartz 定时任务调度 --><dependency><groupId>org.springfr…

加速财务自由的7种理财方法

有人说财务自由是个遥不可及的路&#xff0c;有人却觉得想要在财务上成功很简单&#xff0c;到底财务自由有没有一个正确的方法或是被证明的技巧可以被实现&#xff1f;如果你现在还没达成或是正在达成&#xff0c;底下这7种简单有效的行动与方法可以加速你建构财务自由之路。 …

Code Chef December Challenge 2018题解

传送门 \(MAXEP\) 二分&#xff0c;不过二分的时候要注意把\(mid\)设成\(\left\lfloor{9lr\over 10}\right\rfloor\)&#xff0c;这样往右的次数不会超过\(6\)次 //minamoto #include<bits/stdc.h> #define R register #define inline __inline__ __attribute__((always_…

Git 安装及 idea 配置 Git

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1.git官网下载地址&#xff1a;点此跳转git官网 git具体安装不做详细叙述。 2.打开idea 点击Configure -> Settings 3.选择Git 找到…

创业成功需早起?看看IT大佬们的作息时间

有人说&#xff0c;在一个企业里&#xff0c;级别的高低与越起越早现象呈坐标曲线型&#xff0c;也就是说&#xff0c;一开始进职场都嗜睡&#xff0c;有了一定级别就开始早起&#xff0c;随着级别的升高&#xff0c;起床的时间也越来越早&#xff0c;到了级别特高了&#xff0…

第六章学习小结

本章学习了图的结构及应用&#xff0c; 首先是图的分类&#xff0c;图分为无向图、有向图、完全图、连通图、强连通图、带权图、稀疏图、稠密图等等。 图的存储方式有两大类&#xff0c;以边集合方式的表示法和以链接方式的表示法。其中&#xff0c;以边集合方式表示的为邻接矩…

大数据薪资一再飙升 学习大数据需要哪些基础?

2018年6月19日&#xff0c;备受关注的个人所得税法修正案草案迎来第七次大修&#xff0c;个税起征点由每月3500元提高至每月5000元(每年6万元)。对于大多数人来说这绝对是个好消息&#xff0c;但人们更愿意参加培训班实现高薪。近年来&#xff0c;随着互联网的飞速发展以及企业…

idea 玩转 码云 -- idea安装码云插件

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 在git盛行的今天&#xff0c;码云成为中国程序员的第二github&#xff0c;而且还可以免费使用私人空间。下面就开始码云之旅吧。 0.创建…

阿里云的物联网之路

阿里云的物联网之路 作者 | 刘洪峰 责编 | 唐小引 本文首发于 CSDN 微信&#xff08;ID&#xff1a;CSDNnews&#xff09; 原文链接 未来十到二十年&#xff0c;大家基本已经形成了一个共识&#xff0c;那便是新格局的奠定将由 AI 和物联网技术来支撑。放眼国内&#xff0c;在…

不是所有人都懂这样做,你若做了就能高升!

有句话这样说的&#xff0c;成功的人往往都是做着别人不愿意或不知道的事情&#xff0c;懂得付出才会获得成功&#xff01; 同样的道理&#xff0c;身在职场&#xff0c;每个人都有一种被提拔&#xff0c;晋升的愿望。 不过&#xff0c;光想着没用&#xff0c;除了干好自身工…

面向对象-多态,反射

抽象父类 # 抽象父类&#xff1a;拥有抽象方法(子类共有的方法&#xff0c;但是父类不能有具体的实现体)的父类 # 抽象方法&#xff1a;方法名是具体的&#xff0c;但是实现体是抽象的(在子类中重写来具象化) ​ # 注意点&#xff1a;有抽象方法的父类不能被实例化&#…

解决 : Could not commit JPA transaction RollbackException: Transaction marked as rollbackOnly

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 报错如题&#xff1a; RollbackException: Transaction marked as rollbackOnly 2. 原因是在一个事物 (Transaction) 中有另外一个…

yii2 migrate 数据库迁移的简单分享

开发中经常会用到的方法小结&#xff1a; 1、./yii migrate xxx_xx 在表中插入某字段 &#xff1a; public function up(){$this->addColumn({{application_service}}, auditor, INT(10) NOT NULL COMMENT "审核人" AFTER user_id, CHANGE COLUMN status status t…

养不教 父母之过:10个不能靠老师解决的孩子教育问题

1、写字和握笔姿势。 如果你经历孩子成长的整个过程&#xff0c;你会感悟到&#xff0c;孩子写一手帅气的钢笔字&#xff0c;是非常有价值的技能。把字写好&#xff0c;是每一个家长的责任。如果你还年轻&#xff0c;不知道怎么教育孩子&#xff0c;那就从这一点开始吧。 记…

jpa : criteria 作排除过滤、条件中除去查出的部分数据、JPA 一个参数可查询多个字段

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 PS &#xff1a; mybatis 中也有对于 criteria 的使用&#xff0c;见另一文章&#xff1a;mybatis &#xff1a;Criteria 查询、条件过滤…

将你的前端应用打包成docker镜像并部署到服务器?仅需一个脚本搞定

将你的前端应用打包成docker镜像并部署到服务器&#xff1f;仅需一个脚本搞定1.前言前段时间&#xff0c;自己搞了个阿里云的服务器。想自己在上面折腾&#xff0c;但是不想因为自己瞎折腾而污染了现有的环境。毕竟&#xff0c;现在的阿里云已经没有免费的快照服务了。要想还原…