
com.jpattern.batch.execution.TimedJobExecutionStrategy Maven / Gradle / Ivy
package com.jpattern.batch.execution;
import com.jpattern.batch.JobExecutionStrategy;
/**
*
* Execute a job a predetermined number of times consecutively
*
* @author Francesco Cina'
*
* Apr 4, 2012
*/
public class TimedJobExecutionStrategy implements JobExecutionStrategy {
private static final long serialVersionUID = 1L;
private final int _executionTime;
private int _executedTime = 0;
private static final int INFINITE = -1;
public TimedJobExecutionStrategy(int aExecutionTime) {
_executionTime = aExecutionTime;
}
@Override
public boolean canExecute() {
if (_executionTime == INFINITE) {
return true;
}
if (_executedTime >= _executionTime) {
return false;
}
_executedTime++;
return true;
}
@Override
public String asString() {
final int remainig = (_executionTime - _executedTime) < 0 ? 0 : (_executionTime - _executedTime);
return "TimedJobExecution execute fixed time, remaining " + remainig;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy