xxl-job在parent中定义了jetty的版本,在xxl-job-core中引用,实际在spring boot项目打包的时候是无法使用到你定义的9.2.26.v20180806的,结果就是用的spring-boot-dependency.pom定义的jetty.version的版本即9.4.12.v20180830,但是这个版本有个bug就是jetty调用产生的线程是不回收的,久而久之就导致了OOM,作者可以在xxl-job-core中定义版本,不然麻烦的就要使用者自己去覆盖版本了。这里是说明(https://github.com/eclipse/jetty.project/issues/2860), 且jetty作者只在9.3.25.v20180904版本修复了这个问题,9.4.12以后的版本仍然存在OOM的问题
Q
[xuxueli/xxl-job]在spring boot中jetty版本导致OOM
2
A
回答
5
可以试试在引入xxl-job-core时,排除jetty相关的包 再引入自己需要的版本 dependency里使用exclusions
5
可以自己做,但是如何核心包控制是最好的
0
我也被坑了,
2
对于spring boot,或者部署tomcat的这种类型的项目直接使用容器自带的http协议就好了,不用再单独启动jetty-server了。
5
保持jetty版本于core依赖一致即可。
在最新的迭代版本即将替换Jetty为Netty服务,将会跟随下个版本一同发布,可以参考下。