java—创建一个守护进程线程,该线程只在一个(可能是复制的)spring引导服务示例中运行

zdwk9cvp  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(339)

我有一个spring引导服务,它部署在多个示例中。我希望在其中一个示例中有一个连续运行的“守护线程”。如果该示例停止运行,线程最终(在超时后)应该在其他示例上变为活动状态。
该服务使用一个通用的mongodb数据库,原则上它可以提供锁定,但我正在寻找一种模式或库来正确地实现这一点。
我查看了shedlock,但它似乎只适用于具有某种可预测持续时间的短期运行作业,而不是长时间运行的守护进程线程。

4zcjmb1e

4zcjmb1e1#

我们使用shedlock,我强烈推荐它的简单性。您说希望有一个长时间运行的守护进程线程,但您是否可以使用@scheduled(fixeddelay=0)注解的方法,该方法将运行,然后在上一次迭代完成后再次触发,由spring运行?您可以将其用作“while”循环,而不是一个内部有一个永无止境while循环的方法。

相关问题