spring:如何在应用程序的多个示例中的一个示例中锁定调度程序

vh0rcniy  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(323)

我的应用程序有一个调度器,它每10秒从数据库请求一次数据并对其进行处理。我可以运行两个应用程序示例:第一个是一个不断运行的dev服务器,第二个是我的本地服务器。两个示例都从同一个数据库获取数据。问题是,当我在本地进行编辑并希望对其进行测试时,由于dev服务器正在运行,它可以在本地服务器之前拦截和处理我的数据。这种情况可能发生多次,非常令人不安。有没有办法使它在只有我的本地示例在调度器中执行任务时,而开发服务器只是跳过它?我的意思是,我需要我的本地调度器按计划每10秒运行一次,而dev服务器上的调度器在我的本地示例运行时跳过了该任务。有可能吗?或者有图书馆放这个吗?

djp7away

djp7away1#

有许多可能的解决办法。最“干净”的方法是将数据库分开,这样本地应用程序就根本不会连接到dev服务器的数据库,而是维护一些在本地运行的数据库。
另一种可能的解决方案是重构调度作业,使其仅在某种自定义配置上运行,以便在dev概要文件(您可以在代码中使用spring概要文件或“conditions”)上调度程序根本不会运行。在dev服务器上,默认情况下将启用此配置,并且调度将照常运行。

相关问题