- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
当应用程序服务器关闭时,关闭在服务器环境(例如 Tomcat)中运行的 AbstractScheduledService
的首选方法是什么?我是否必须为此显式注册一个服务器监听器,或者有没有办法将服务线程指定为守护进程?
最佳答案
管理服务
(包括/特别是在服务器中)的标准方法是使用 ServiceManager
。将所有服务添加到 ServiceManager
中,然后在启动时添加 startAsync()
管理器,在关闭时添加 stopAsync()
管理器。为此,您需要一个服务器监听器。
可以通过覆盖 AbstractScheduledService
的 executor()
方法并返回使用生成守护线程的 ThreadFactory
的执行程序来将服务线程指定为守护程序,但请注意,如果这样做,如果/当 AbstractScheduledService
本身停止时,执行程序将不会自动关闭(尽管您可以向执行此操作的服务就像默认的 executor() 实现一样)。
也就是说,我建议使用 ServiceManager
加上服务器监听器。这种方法应该确保您的服务有序关闭。
关于java - 服务器环境上的 Guava AbstractScheduledService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29075690/
我正在尝试扩展AbstractScheduledService.Scheduler,以便我可以使用在实例变量中存储初始延迟和周期的计划。 我正在尝试以下操作 public class ScannerS
当应用程序服务器关闭时,关闭在服务器环境(例如 Tomcat)中运行的 AbstractScheduledService 的首选方法是什么?我是否必须为此显式注册一个服务器监听器,或者有没有办法将服务
我正在使用一些继承自 AbstractScheduledService 的服务,这些服务由 ServiceManager 管理。一切正常,但现在,有一个服务的 runOneIteration 需要相当
我正在尝试使用 guava 定期执行一些任务 AbstractScheduledService : public class MyService extends AbstractScheduledSe
我正在使用带有调度程序的 AbstractScheduledService。一个简单的模式,如: class MyService extends AbstractScheduledService {
我是一名优秀的程序员,十分优秀!