如何防止在Grails中同时执行作业?
|
我在grails中有一个石英作业,需要每5s执行一次,但是我需要按顺序执行。在某些情况下,作业的执行超过了5s,在这种情况下,我不想在先前的执行未完成时执行。如何在grails中进行配置?
(当然,整个魔术可以用一个静态的volatile标志来完成,但这不是一种非常优雅的方法)
(另外,如何配置作业为单例?)
谢谢
没有找到相关结果
已邀请:
4 个回复
闪脖
属性设置为
。 从Quartz插件文档中: \“默认情况下,作业以并发方式执行,因此即使同一作业的先前执行仍在运行,新的作业也可以开始执行。如果要覆盖此行为,则可以使用'concurrent \'属性,在这种情况下为Quartz \将使用StatefulJob \“ 在石英插件的最新版本(Grails 3.3。*的2.0.13版)中,看起来像这样:
对于较旧版本的grails / quartz,它看起来类似,不同之处在于属性是用
而不是
设置的:
缮淳彼誊
窃誓额
在工作班上。 请注意定义中的“ 4”,至少从2.0.12版本开始,需要使用它代替“ 8”。 参见Quartz文档。
才改隘瘁
(我认为甚至没有必要使用pool-size 1,但是请确保100%;)