Caused by: org.quartz.ObjectAlreadyExistsException: Unable to store Job : 'DEFAULT.TASK_1', because one already exists with this identification.
at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJob(JobStoreSupport.java:1113) ~[quartz-2.3.0.jar:na]
at org.quartz.impl.jdbcjobstore.JobStoreSupport$2.executeVoid(JobStoreSupport.java:1067) ~[quartz-2.3.0.jar:na]
at org.quartz.impl.jdbcjobstore.JobStoreSupport$VoidTransactionCallback.execute(JobStoreSupport.java:3765) ~[quartz-2.3.0.jar:na]
at org.quartz.impl.jdbcjobstore.JobStoreSupport$VoidTransactionCallback.execute(JobStoreSupport.java:3763) ~[quartz-2.3.0.jar:na]
at org.quartz.impl.jdbcjobstore.JobStoreCMT.executeInLock(JobStoreCMT.java:245) ~[quartz-2.3.0.jar:na]
at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJobAndTrigger(JobStoreSupport.java:1063) ~[quartz-2.3.0.jar:na]
at org.quartz.core.QuartzScheduler.scheduleJob(QuartzScheduler.java:855) ~[quartz-2.3.0.jar:na]
at org.quartz.impl.StdScheduler.scheduleJob(StdScheduler.java:249) ~[quartz-2.3.0.jar:na]
at io.renren.modules.job.utils.ScheduleUtils.createScheduleJob(ScheduleUtils.java:67) ~[classes/:na]
... 39 common frames omitted
找了好久,以为是误改了什么文件导致的,但是查看修改记录,发现前一天修改的内容没有关于报错项目的,最后摸索到了数据库
QRTZ_JOB_DETAILS表中,找到上述报错的,JOB_NAME:TASK_1,JOB_GROUP:DEFAULT的记录了.
这里直接将这条记录删除即可.
如果直接允许删除,那么说明上一次退出或启动时发生了问题,该表中的内容没有被正常删除.
正常而言,QRTZ_TRIGGERS表中对QRTZ_JOB_DETAILS有外键引用,所以直接是删除不掉的,而QRTZ_CRON_TRIGGERS表中又有对QRTZ_TRIGGERS的外键引用.所以,要按照:以下顺序删除数据
QRTZ_CRON_TRIGGERS > QRTZ_TRIGGERS > QRTZ_JOB_DETAILS
删除后即可正常启动了.
DELETE from qrtz_cron_triggers;
DELETE from qrtz_triggers;
DELETE from qrtz_job_details;