All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jpattern.batch.execution.IntervalJobExecutionStrategy Maven / Gradle / Ivy

package com.jpattern.batch.execution;

import java.util.Date;

import com.jpattern.batch.JobExecutionStrategy;
/**
 * 
 * Execute a job every prefixed interval of time
 * 
 * @author Francesco Cina'
 *
 * 27/mar/2010
 */
public class IntervalJobExecutionStrategy implements JobExecutionStrategy {

	private static final long serialVersionUID = 1L;
	private final long interval;
	private long lastTimeStamp;


	public IntervalJobExecutionStrategy( long repeatEveryMilliseconds ) {

		interval = repeatEveryMilliseconds;
		lastTimeStamp = new Date().getTime();

	}

	@Override
	public boolean canExecute() {
		final long now = new Date().getTime();
		if ( now >= (lastTimeStamp + interval)) {
			lastTimeStamp = now;
			return true;
		}

		return false;
	}

	@Override
	public String asString() {
		return  "IntervalJobExecution repeat every  " + interval + " milliseconds";
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy