当前位置: 首页 > 知识库问答 >
问题:

Spring Task:scheduled或@scheduler限制作业在多个实例中运行

公西财
2023-03-14

我有一个@scheduler作业,它在集群环境中的多个服务器上运行。但是,我想限制作业只在一台服务器中运行,其他服务器不应该运行同一作业,一旦其他服务器启动了它。

我已经使用一些数据库表探索了Spring批处理具有锁机制,但仅在Springtask:scheduler中寻找任何解决方案。

共有1个答案

鲁明知
2023-03-14

我也遇到了同样的问题,我实现的解决方案是使用Hazelcast的锁机制,为了使它易于使用,我还为此添加了一个适当的注释和一些spring AOP。因此,通过这个技巧,我可以在集群上执行一个调度,只使用一个注释。

 类似资料:
  • 在Quartz-Scheduler中是否可以定义作业的执行约束? 谢谢你的回答。

  • 正如title一样,我有几个同时设置触发时间的作业,但我不希望它们一次全部执行。因为我担心它可能会导致我的系统过热问题。有没有什么方法可以配置触发器,使它的执行时间可以在定义的偏移量之间变化? 例如: 排定要在12pm执行的2个作业:Job1和Job2 在12pm执行Job1。 在12:01pm执行Job2。

  • 我有一个Spring批处理作业,它可能在多个服务器上运行。我有一个监听器,可以防止作业的多个实例在一台服务器上同时运行。但是,我要确保该作业不能同时在多台服务器上运行。 我已经找遍了,但没有找到解决这个问题的办法

  • 当前设置 null 问题 因为我们有3个pod,并且调度程序处于应用程序级别,所以我们对数据集进行3次调用,每个pod都得到响应,并且首先在缓存中处理的pod成为主服务器,其他2个pod复制来自该实例的数据。 我认为这是一个问题,因为我们将增加获取更多数据集的作业数量,因此这将成倍增加调用的数量。 null null null 2-我谷歌了,发现其他的选择是运行一个Cronjob,这将安排一个工作

  • 问题内容: 我在并行计算集群的不同处理器上将Python 3.6脚本作为多个单独的进程运行。多达35个进程同时运行没有问题,但是第36行(及以后)因第二行()上的分段错误而崩溃。有趣的是,第一行不会引起问题。完整的错误消息是: 熊猫和其他一些软件包已安装在虚拟环境中。我已经复制了虚拟环境,因此每个venv中运行的进程不超过24个。例如,上面的错误脚本来自运行在名为的虚拟环境中的脚本。 不论从特定的

  • 我在Pivotal Cloud Foundry(PCF)中有一个spring@Scheduled作业,它可以在多个实例中运行,但我想限制它在PCF云环境中只能在一个实例中运行。