gpt4 book ai didi

java - 是否有任何情况下 ScheduledThreadPoolExecutor 会完全停止工作?

转载 作者:行者123 更新时间:2023-12-03 13:12:20 26 4
gpt4 key购买 nike

我们正在运行一个 Java 服务器应用程序,该应用程序使用 ScheduledThreadPoolExecutor 来管理一些工作。有多个实例在运行,用于不同类型的工作,但每个实例只使用一个线程。为什么会这样并不重要,因为真的没有办法解决它。我们在生产服务器上注意到的是,其中一个实例在某个时候完全无声地停止工作。重启服务器又恢复了,但问题没有解决。

我知道如果任务在某个时候抛出异常,使用 scheduleAtFixedRate 将会停止,但这里不是这种情况。我们有一个简单地停止执行的循环任务,以及使用 schedule() 方法但仍然没有执行的新任务。我推测它正在使用的线程已终止并且没有重新启动。

我的问题是,是否存在任何可能发生这种情况的情况?有什么需要注意的吗?

最佳答案

看起来最简单的解释就是答案:所有线程都挂起。

在我的例子中,原因似乎是永不超时的 HTTP 请求。这在某些情况下可能会发生,我还没有找到解决问题的好方法。我认为最好的选择是对计划任务本身实现超时,以确保我们避免任何问题。

关于java - 是否有任何情况下 ScheduledThreadPoolExecutor 会完全停止工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28517531/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com