【发布时间】:2018-04-18 08:30:19
【问题描述】:
我有一个多线程 Java 应用程序,其中每个线程都尝试从池中获取数据库连接。如果连接不可用,则等待 5 分钟,直到尝试 3 次,如果尝试 3 次未创建连接,则失败。
我现在想要创建一些共享递减定时器,初始化值为 5 分钟。此计时器将在第一次连接失败发生时启动,线程将进入等待状态 5 分钟。现在对于更多线程,如果发生连接失败并且计时器已经启动,则选择计时器的当前值并进入等待状态,直到计时器的当前值。现在每当线程唤醒时,它会重新尝试连接,如果再次失败,它会重新设置计时器为 5 分钟以上。
是否有任何现有的解决方案可用。
【问题讨论】:
-
到目前为止你尝试了什么?
-
正如我所提到的,如果连接失败,目前我只等待每个线程 5 分钟。因此,如果线程 1 出现故障并等待 5 分钟,而线程 2 在三分钟后出现并且数据库仍然失败,那么将进入 5 分钟等待,而它应该进入 2 分钟等待
标签: java multithreading timer countdowntimer