我有几个执行器服务,它们会调度本地任务,例如读取文件、连接数据库等。这些进程会进行大量日志记录,由于有许多线程同时运行并写入自己的日志,因此日志非常繁琐。
现在,在某个时间点上,可能会引发异常,该异常会到达捕获所有异常的主方法。然后,我将关闭所有服务并取消每个任务,希望防止所有进一步的消息出现在日志中。不幸的是,关闭所有服务后仍然会显示消息... 有什么想法吗?
更新: 以下是一些代码。
现在,在某个时间点上,可能会引发异常,该异常会到达捕获所有异常的主方法。然后,我将关闭所有服务并取消每个任务,希望防止所有进一步的消息出现在日志中。不幸的是,关闭所有服务后仍然会显示消息... 有什么想法吗?
更新: 以下是一些代码。
public class Scheduler{
private final ExecutorService service;
private final ConcurrentMap<Object, Future<V>> cache;
...
public void shutDown() {
service.shutdownNow();
for (Future task : cache.values())
task.cancel(true);
}
shutdown
而不是shutdownNow
?有无数个原因。 - user381105