Java 服务器环境下的Guava AbstractScheduledService
当应用服务器关闭时,关闭在服务器环境(例如Tomcat)中运行的Java 服务器环境下的Guava AbstractScheduledService,java,thread-safety,guava,scheduler,Java,Thread Safety,Guava,Scheduler,当应用服务器关闭时,关闭在服务器环境(例如Tomcat)中运行的AbstractScheduledService的首选方式是什么?我是否必须为此显式注册服务器侦听器,或者是否有方法将服务线程指定为守护进程?管理服务的标准方法(包括/特别是在服务器中)正在使用。将所有服务添加到ServiceManager,然后在启动时startAsync()管理器,在关闭时stopsync()。为此,您需要一个服务器侦听器 可以通过重写AbstractScheduledService的code>方法并返回使用生成
AbstractScheduledService
的首选方式是什么?我是否必须为此显式注册服务器侦听器,或者是否有方法将服务线程指定为守护进程?管理服务的标准方法(包括/特别是在服务器中)正在使用。将所有服务添加到ServiceManager
,然后在启动时startAsync()
管理器,在关闭时stopsync()
。为此,您需要一个服务器侦听器
可以通过重写AbstractScheduledService
的code>方法并返回使用生成守护进程线程的ThreadFactory
的执行器,将服务线程指定为守护进程,但请注意,如果这样做,当AbstractScheduledService
本身停止时,执行器不会自动关闭(尽管您可以向服务添加一个侦听器,该侦听器将执行此操作,就像默认的执行器()
实现那样)
也就是说,我推荐ServiceManager
加上一个服务器侦听器。这种方法应该确保有序地关闭您的服务。谢谢您的建议,我的第一个想法也是servlet侦听器。