Microservices 独立的light-4j客户端应用程序无法从主类退出

Microservices 独立的light-4j客户端应用程序无法从主类退出,microservices,batch-processing,light-4j,Microservices,Batch Processing,Light 4j,我已经构建了一个批处理作业,它从enterprise scheduler调用,以访问light-4j微服务来执行一些日常任务。批处理作业是一个独立的应用程序,它使用light-4j客户端模块调用微服务 工作完成后,一件奇怪的事情发生了。作业完成后,主类不会自动退出。看起来仍然有一些线程在运行,阻止主类退出。当我将light-4jhttp2client切换到apachehttpclient时,主类优雅地退出。我做错什么了吗 与其他单线程Http客户端不同。light-4j Http2Client使

我已经构建了一个批处理作业,它从enterprise scheduler调用,以访问light-4j微服务来执行一些日常任务。批处理作业是一个独立的应用程序,它使用light-4j客户端模块调用微服务


工作完成后,一件奇怪的事情发生了。作业完成后,主类不会自动退出。看起来仍然有一些线程在运行,阻止主类退出。当我将light-4jhttp2client切换到apachehttpclient时,主类优雅地退出。我做错什么了吗

与其他单线程Http客户端不同。light-4j Http2Client使用事件循环异步处理多个请求/响应,就像Undertow服务器一样。这确保了最高的吞吐量和最低的延迟;但是,事件循环分配了一个在主线程完成后不会关闭的线程池。这需要调用system.exit()来停止JVM应用程序。之后,应用程序中所有正在运行的线程都将停止

下面是一个使用Http2Client的独立应用程序示例