防止 Quartz 调度程序和 REST 调用触发的方法并行执行

问题描述 投票:0回答:1

我有一个 Quartz Scheduler 每小时调用我的 configUpdate 方法。但是,也可以通过我的控制器中的 REST API 调用来调用相同的方法。由于此方法复杂且异步,因此我想确保它永远不会并发运行,无论它是由调度程序还是 REST 调用触发。

我必须采取哪些选择才能实现这一目标?

rest quarkus
1个回答
0
投票

您需要锁定您的方法,以便一次只有 1 个线程可以访问它。

如果您的应用程序作为单个实例运行,那么您可以“同步”您的方法或使用 java.concurrent 库。

否则你需要将它与Shedlock或Quartz之类的东西结合起来。

© www.soinside.com 2019 - 2024. All rights reserved.