How to prevent concurrent execution of a job in Grails?

Viewed 14196

I have a quartz job in grails, that needs to be executed in every 5s, but I need this sequentially. In some situations the execution of the job exceeds this 5s, in this case I dont't want to be executed while the previouse exection is not finished. How to configure this in grails?

(Of course the whole magic could be done with a static volatile flag, but is not a very elegant way to do this) (Also how can I configure for the job to be singleton?)

thx

4 Answers

For Quartz-based jobs concurrency is achieved using

static concurrent = false

in the job class.

Note the static in the definition, this is needed instead of def concurrent = false at least since version 2.0.12. See the Quartz documentation.

Related