我有一个应用程序,使用Quartz作为作业调度程序。有两种情况
>
应用程序的两个实例都将启动并连接到数据库。两者都报告它们已成功群集并连接到数据库。
当我根据场景1调度作业时,在作业执行时,只有一个应用程序执行作业。
场景2,即每10秒执行一次的cron作业,由两个应用程序同时执行。
val myCronJob = newJob(MyCronJob::class.java)
.withIdentity("cronjob", "cronJobGroup")
.build()
val trigger = newTrigger()
.withIdentity("cronjob", "cronJobGroup")
.startNow()
.withSchedule(simpleSchedule()
.withMisfireHandlingInstructionIgnoreMisfires()
.withIntervalInSeconds(10)
.repeatForever())
.build()
任何帮助或指导将非常感谢!
我认为可以在作业类上使用@DisAllowConcurrentExecution注释。
来自文档:将作业类标记为不能同时执行多个实例的批注(其中实例基于JobDetail*定义,或者换句话说基于JobKey)。
我在这里读到了以下关于石英簇模式的声明: 我假设“低频繁触发器”(每天一次)也会导致作业在随机节点上执行,因为有很多触发器“接近其执行时间”(高频繁触发器),所以从Quartz的角度来看,在下午01:00左右有很多触发器。
我想知道是否有一个函数/方法来创建随机时间触发的作业。我的意思是,如果我设置一个cron计划在每周一上午10:00触发,并给出一个时间间隔,比方说30分钟,触发器将总是在9:30到10:30之间关闭。例如,这是cron调度表。
我有一些用@NotConcurrent注释的作业,它们每个集群运行一次(即,只在一个节点中,只在一个线程中)。 现在我需要在集群的每个节点上运行一个作业。我删除了@NotConcurrent注释,但它只在一台机器上的每个线程上运行。它不会在其他节点上被激发。 我应该用什么来注释这份工作?
问题内容: 我在集群环境中将Quartz Scheduler用作Spring bean。 我有一些用@NotConcurrent注释的作业,它们每个集群运行一次(即,仅在一个节点中,仅在一个线程中)。 现在,我需要在集群的每个节点上运行一项作业。我删除了@NotConcurrent批注,但是它仅在一台计算机上的每个线程上运行。它不会在其他节点上触发。 我应该用什么来注释作业? 示例:带注释的Job
我有一个有两个节点的集群,它连接到同一个数据库,还有一个调度作业,由Quartz调度程序每10分钟启动一次。在quartz.properties中设置。 我感兴趣的是,调度程序是否会为同一节点发出作业,直到每隔10分钟可到达该节点为止,或者它使用某种算法来确定哪个节点将执行该作业。 我在文档(http://www.quartz-scheduler.org/documentation/quartz-
我的Kubernetes设置: v1.16.2裸机 1主节点:用于Jenkins master+Docker注册表 5个从节点:用于Jenkins JNPL从节点 我使用kubernetes-plugin来运行奴隶码头代理。标记为“Jenkins=slave”的所有从k8节点。当我将nodeSelector(“Jenkins=slave”)用于podTemplate时,kubernetes总是在同