【发布时间】:2019-06-04 23:17:55
【问题描述】:
我正在创建独立的 Spring Boot Java 应用程序,其中处理调度程序、数据库驱动的事件。 我正在使用 spring boot 2.1.1,我希望我的独立 java 应用程序在我的应用程序中运行而不退出。 我不想依赖操作系统特定的工具,如 nohup、javaw 等。 我尝试使用 spring-boot-web 和嵌入式容器(tomcat/jetty),只是为了让应用程序在执行 main 方法时运行。 但它添加了不需要的依赖项并坚持从执行 java -jar 的控制台。 spring 或 java 提供什么更好的方法来做到这一点?
【问题讨论】:
-
为什么要让它继续运行?如果它不是一个 Web 应用程序,它应该被触发、处理并退出。您可以在需要时再次调用它,例如库。
-
保持运行的原因:应用程序执行了一些从DB读取的计划任务和事件。
-
考虑启用调度并使用任务调度程序,它将继续运行并防止您的应用程序关闭。
-
@Ubercool 所说的 - 使用非守护线程池启用任务调度并在其上调度任务。这将防止您的应用程序关闭。
-
启用调度器是很酷的选择,前提是至少有一个调度器任务一直在运行
标签: spring-boot