ElasticJob启动不了 Caused by:com.dangdang.ddframe.job.exception.JobConfigurationException: Job conflict

本文主要是介绍ElasticJob启动不了 Caused by:com.dangdang.ddframe.job.exception.JobConfigurationException: Job conflict,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

解决当当ElasticJob启动不了问题

问题描述

分布式任务只能启动一个服务,启动第二个服务时会报错失败,报错如下

java.lang.IllegalStateException: Failed to execute CommandLineRunnerat org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:784)at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:765)at org.springframework.boot.SpringApplication.run(SpringApplication.java:319)at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215)at org.springframework.boot.SpringApplication.run(SpringApplication.java:1204)at com.ScheduleApplication.main(ScheduleApplication.java:34)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)at org.springframework.boot.loader.Launcher.launch(Launcher.java:51)at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52)
Caused by: com.dangdang.ddframe.job.exception.JobConfigurationException: Job conflict with register center. The job '课程销售统计任务' in register center's class is 'com.job.ClassSellStatisticsJob$$EnhancerBySpringCGLIB$$27d6e9fe', your job class is 'com.job.ClassSellStatisticsJob$$EnhancerBySpringCGLIB$$38c60534'at com.dangdang.ddframe.job.lite.internal.config.ConfigurationService.checkConflictJob(ConfigurationService.java:79)at com.dangdang.ddframe.job.lite.internal.config.ConfigurationService.persist(ConfigurationService.java:70)at com.dangdang.ddframe.job.lite.internal.schedule.SchedulerFacade.updateJobConfiguration(SchedulerFacade.java:103)at com.dangdang.ddframe.job.lite.api.JobScheduler.init(JobScheduler.java:105)at com.config.SimpleJobLoader.initJob(SimpleJobLoader.java:91)at com.config.SimpleJobLoader.run(SimpleJobLoader.java:58)at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:781)... 13 common frames omitted

从报错Job conflict with register center. 可以看出是启动第二个服务时有一个任务在zookeeper注册冲突了,但是其他任务没有冲突,为什么只有这个任务冲突,之前的关注点都在任务的名称上面,但是这次的的关注点在class的全类名com.job.ClassSellStatisticsJob$$EnhancerBySpringCGLIB$$27d6e9fe上,分析如下。

查看该job在zk上的注册信息:
该job的zk注册信息
查看正常任务的zk注册信息:
在这里插入图片描述
对比看出一个是增强类一个正常类:
报错job的jobClass是com.job.ClassSellStatisticsJob$$EnhancerBySpringCGLIB$$27d6e9fe 该类为增强类,为什么是代理增强类因为该类的方法中使用了@Transactional注解,然后spring对该类进行了进行了代理。每启动一个进程这个代理的类路径是不一样的因为后面应该拼接的是内存地址,所以这就解释了为什么启动第二个服务报错的问题。
在这里插入图片描述

解决方法

将该事务逻辑使用编程式事务或将该注解放到service上,就不会被spirng代理增强了,如下
在这里插入图片描述修改完后再看zk上的注册信息就是正常的全类名了
在这里插入图片描述

总结

当当的ElasticJob在启动注册的时候也会校验jobClass配置是否一致,如果两台服务不一致就会报冲突错误。

这篇关于ElasticJob启动不了 Caused by:com.dangdang.ddframe.job.exception.JobConfigurationException: Job conflict的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/425667

相关文章

检查 Nginx 是否启动的几种方法

《检查Nginx是否启动的几种方法》本文主要介绍了检查Nginx是否启动的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1. 使用 systemctl 命令(推荐)2. 使用 service 命令3. 检查进程是否存在4

解决idea启动项目报错java: OutOfMemoryError: insufficient memory

《解决idea启动项目报错java:OutOfMemoryError:insufficientmemory》:本文主要介绍解决idea启动项目报错java:OutOfMemoryError... 目录原因:解决:总结 原因:在Java中遇到OutOfMemoryError: insufficient me

SpringBoot项目整合Netty启动失败的常见错误总结

《SpringBoot项目整合Netty启动失败的常见错误总结》本文总结了SpringBoot集成Netty时常见的8类问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、端口冲突问题1. Tomcat与Netty端口冲突二、主线程被阻塞问题1. Netty启动阻

SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)

《SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)》本文总结了SpringBoot项目整合Kafka启动失败的常见错误,包括Kafka服务器连接问题、序列化配置错误、依赖配置问题、... 目录一、Kafka服务器连接问题1. Kafka服务器无法连接2. 开发环境与生产环境网络不通二、序

Java Exception异常类的继承体系详解

《JavaException异常类的继承体系详解》Java中的异常处理机制分为异常(Exception)和错误(Error)两大类,异常分为编译时异常(CheckedException)和运行时异常... 目录1. 异常类的继承体系2. Error错误3. Exception异常3.1 编译时异常: Che

Java Exception与RuntimeException使用及说明

《JavaException与RuntimeException使用及说明》:本文主要介绍JavaException与RuntimeException使用及说明,具有很好的参考价值,希望对大家有所... 目录简介ExceptionRuntimeException自定义异常选择继承Exception(受检异常)

Java JAR 启动内存参数配置指南(从基础设置到性能优化)

《JavaJAR启动内存参数配置指南(从基础设置到性能优化)》在启动Java可执行JAR文件时,合理配置JVM内存参数是保障应用稳定性和性能的关键,本文将系统讲解如何通过命令行参数、环境变量等方式... 目录一、核心内存参数详解1.1 堆内存配置1.2 元空间配置(MetASPace)1.3 线程栈配置1.

SpringBoot集成XXL-JOB实现任务管理全流程

《SpringBoot集成XXL-JOB实现任务管理全流程》XXL-JOB是一款轻量级分布式任务调度平台,功能丰富、界面简洁、易于扩展,本文介绍如何通过SpringBoot项目,使用RestTempl... 目录一、前言二、项目结构简述三、Maven 依赖四、Controller 代码详解五、Service

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec