我有一个 Quartz Scheduler 每小时调用我的 configUpdate 方法。但是,也可以通过我的控制器中的 REST API 调用来调用相同的方法。由于此方法复杂且异步,因此我想确保它永远不会并发运行,无论它是由调度程序还是 REST 调用触发。
我必须采取哪些选择才能实现这一目标?
您需要锁定您的方法,以便一次只有 1 个线程可以访问它。
如果您的应用程序作为单个实例运行,那么您可以“同步”您的方法或使用 java.concurrent 库。
否则你需要将它与Shedlock或Quartz之类的东西结合起来。