Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 服务器环境下的Guava AbstractScheduledService_Java_Thread Safety_Guava_Scheduler - Fatal编程技术网

Java 服务器环境下的Guava AbstractScheduledService

Java 服务器环境下的Guava AbstractScheduledService,java,thread-safety,guava,scheduler,Java,Thread Safety,Guava,Scheduler,当应用服务器关闭时,关闭在服务器环境(例如Tomcat)中运行的AbstractScheduledService的首选方式是什么?我是否必须为此显式注册服务器侦听器,或者是否有方法将服务线程指定为守护进程?管理服务的标准方法(包括/特别是在服务器中)正在使用。将所有服务添加到ServiceManager,然后在启动时startAsync()管理器,在关闭时stopsync()。为此,您需要一个服务器侦听器 可以通过重写AbstractScheduledService的code>方法并返回使用生成

当应用服务器关闭时,关闭在服务器环境(例如Tomcat)中运行的
AbstractScheduledService
的首选方式是什么?我是否必须为此显式注册服务器侦听器,或者是否有方法将服务线程指定为守护进程?

管理
服务的标准方法(包括/特别是在服务器中)正在使用。将所有服务添加到
ServiceManager
,然后在启动时
startAsync()
管理器,在关闭时
stopsync()
。为此,您需要一个服务器侦听器

可以通过重写
AbstractScheduledService
code>方法并返回使用生成守护进程线程的
ThreadFactory
的执行器,将服务线程指定为守护进程,但请注意,如果这样做,当
AbstractScheduledService
本身停止时,执行器不会自动关闭(尽管您可以向服务添加一个侦听器,该侦听器将执行此操作,就像默认的
执行器()
实现那样)


也就是说,我推荐
ServiceManager
加上一个服务器侦听器。这种方法应该确保有序地关闭您的服务。

谢谢您的建议,我的第一个想法也是servlet侦听器。