Предполагая, что вы используете плагин Grails Quartz, вы должны просто установить свойство concurrent
вашего класса заданий на false
.
Из документации Quartz Plugin :
"По умолчанию задания выполняются одновременно, поэтому выполнение нового задания может начаться, даже если предыдущее выполнение того же задания еще выполняется. Если вы хотите переопределить это поведение, вы можете использовать свойство« одновременный », в данном случае Quartz StatefulJob будет использоваться "
В более поздних версиях кварцевого плагина (версия 2.0.13 для Grails 3.3. *) Это выглядело бы так:
class MyJob {
static concurrent = false
void execute() {
println "Job run!"
}
}
Для более старых версий grails / quartz это выглядело бы аналогично, за исключением того, что свойства были установлены с def
вместо static
:
class MyJob {
static concurrent = false
void execute() {
println "Job run!"
}
}