spring batch Running only one Job Instance at a time and create queue it up

1k Views Asked by At

Running only on job instance at a time this ok : Spring batch restrict single instance of job only

public class jobMailListener implements JobExecutionListener {

// active JobExecution, used as a lock.
private JobExecution _active;


public void beforeJob(JobExecution jobExecution) {
    // create a lock
    synchronized (jobExecution) {
        if (_active != null && _active.isRunning()) {
             //***************************//
            // Here create/storage in queue it up ? 
            //****************************//
            jobExecution.stop();
        } else {
            _active = jobExecution;
        }
    }
}

public void afterJob(JobExecution jobExecution) {
    // release the lock
    synchronized (jobExecution) {
        if (jobExecution == _active) {
            _active = null;
        }
    }
}

}

<batch:job id="envoiMail" restartable="true">
    <batch:listeners><batch:listener ref="jobMailListener"/>
    <batch:step id="prepareData">...

I would not stop the jobs but create a queue.

Can be used spring integration ?

I thought http://incomplete-code.blogspot.fr/2013/03/spring-batch-running-only-one-job.html#comment-form But it is not functional.

0

There are 0 best solutions below