Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 在应用服务器的所有克隆中运行的qrtz调度程序_Spring_Quartz Scheduler_Timertask_Ehcache_Terracotta_Hazelcast - Fatal编程技术网

Spring 在应用服务器的所有克隆中运行的qrtz调度程序

Spring 在应用服务器的所有克隆中运行的qrtz调度程序,spring,quartz-scheduler,timertask,ehcache,terracotta,hazelcast,Spring,Quartz Scheduler,Timertask,Ehcache,Terracotta,Hazelcast,quartz_scheduler或spring framework是否支持在应用服务器的所有克隆(实例)中运行计划作业 在我的项目中,我们有两个用于负载平衡的应用服务器实例。在使用单例bean创建服务器启动期间,我们将一些重要的细节存储在JVM的缓存中,当一些数据发生更改时,我们需要刷新缓存,而无需重新启动服务器 如果quartz-scheduler在server1中运行,则不会在server2中刷新缓存内存,反之亦然。所以我需要一个永久的解决方案来解决这个问题,我应该能够通过更新查询来控制作业

quartz_scheduler或spring framework是否支持在应用服务器的所有克隆(实例)中运行计划作业

在我的项目中,我们有两个用于负载平衡的应用服务器实例。在使用单例bean创建服务器启动期间,我们将一些重要的细节存储在JVM的缓存中,当一些数据发生更改时,我们需要刷新缓存,而无需重新启动服务器


如果quartz-scheduler在server1中运行,则不会在server2中刷新缓存内存,反之亦然。所以我需要一个永久的解决方案来解决这个问题,我应该能够通过更新查询来控制作业。请提供帮助

如果您在群集配置中运行Quartz,计划作业将仅在一个随机实例上运行。当前,无法计划在群集中的所有节点上运行作业。另一方面,如果每个应用程序都运行独立的Quartz调度程序,则它们彼此都不了解。因此,如果在一个实例上调度作业,它将在完全相同的实例上运行

您真正需要的不是分布式作业调度(我猜您正在调度一个作业来异步更新两个实例上的缓存),而是分布式缓存。其思想是,每次更新缓存时,更改都会自动复制到所有其他实例。Spring还通过
@Cacheable
注释提供了一些缓存抽象


请查看RMI复制和其他许多功能。他们的工作做得更好。缓存和分发更改。

感谢Tomasz的快速回复。我更关心的是通过类似quartz的数据库条目控制缓存内存。因此,我们可以控制刷新集群中所有节点的缓存的作业