spring启动调度服务的负载平衡

bvn4nwqk  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(411)

我使用@enablescheduler和@scheduler(cron=)创建了一个javaspring引导调度器服务,需要在集群上运行这个服务。有人可以帮助我如何创建集群负载平衡的应用程序。

qvsjd97n

qvsjd97n1#

实际上,您需要确保一旦在一个节点上启动了计划任务,集群中的其他节点就被阻止执行相同的任务。
您可以使用shedlock来实现此目的。您需要创建一个名为shedlock的数据库表,它应该包含以下属性:name、lock\u at、lock\u until、locked\u by(node)。
然后创建如下计划任务:

@Scheduled(chron="..")
@SchedulerLock(name="..", lockAtLeast="..")
public void scheduledTask() {
    LockAssert.assertLocked();
    //do something
}

有关更多文档,请尝试shedlock

相关问题