Java -避免在轮询数据库的多进程上争用的最佳实践



我有一个应用程序,它每60秒加载一个作业。作业轮询数据库中的表(NoSQL),如果存在新行,则在数据库中启动一些处理。

现在,为了避免SPOF,我加载了应用程序的另一个实例希望避免对指示记录的争用。

在轮询数据库的多个进程之间避免争用的最佳实践是什么?
(是否有已知/推荐的FW)

我不知道这样做的最佳实践,但如果我是你,我会创建一个名为"Listener"的主程序来检查表,如果一个新记录存在,这个程序将创建另一个线程,它做任何它必须做的事情,并在它完成时死亡。线程将动态创建,并在作业完成时死亡,因此通过这种方式可以避免SPOF。