java如何触发关闭Guava AbstractScheduledService?
我正在使用从AbstractScheduledService
继承的一些服务,这些服务由ServiceManager
管理。一切正常,但是现在,有一个服务的runOneIteration
花费了相当长的时间,因此,我的进程需要太长的时间才能终止(超过5秒)
还有其他从AbstractExecutionThreadService
继承的服务,也有类似的问题,我可以通过
@Override
protected final void triggerShutdown() {
if (thread != null) thread.interrupt();
}
以及在run
方法中存储private volatile thread
。但是,正如this issue中所述,AbstractScheduledService
没有triggerShutdown
我已经考虑过让runOneIteration
做更少的工作这样的替代方案,但它既丑陋又低效
我无法覆盖stopAsync
,因为它是最终版本,我看不到任何其他内容<像这样的事情有没有钩子
# 1 楼答案
你能用这个吗?你有什么理由不能自己添加触发器吗