org.oddjob.scheduling
Class Retry
java.lang.Object
org.oddjob.framework.BaseComponent
org.oddjob.framework.BasePrimary
org.oddjob.scheduling.ScheduleBase
org.oddjob.scheduling.TimerBase
org.oddjob.scheduling.Retry
- All Implemented Interfaces:
- Serializable, Runnable, ArooaContextAware, PropertyChangeNotifier, Iconic, LogEnabled, Resetable, Stateful, Stoppable, Structural
public class Retry
- extends TimerBase
Description
This is a timer that runs it's job according to the schedule until
the schedule expires or the job completes successfully.
Example
File Polling. Check every 5 seconds for a file.
<oddjob id="this">
<job>
<scheduling:retry name="File Polling Example" xmlns:scheduling="http://rgordon.co.uk/oddjob/scheduling" xmlns:schedules="http://rgordon.co.uk/oddjob/schedules">
<schedule>
<schedules:interval interval="00:00:05"/>
</schedule>
<job>
<sequential id="look" name="Look for files">
<jobs>
<exists file="${this.dir}/work/*.foo" id="check" name="Check File Exists"/>
<echo name="Echo to Console">Found ${check.exists[0]}</echo>
</jobs>
</sequential>
</job>
</scheduling:retry>
</job>
</oddjob>
Example
Using Retry with a Timer. A daily job retries twice.
<oddjob xmlns:schedules="http://rgordon.co.uk/oddjob/schedules" xmlns:scheduling="http://rgordon.co.uk/oddjob/scheduling" xmlns:state="http://rgordon.co.uk/oddjob/state">
<job>
<scheduling:timer id="timer">
<schedule>
<schedules:daily from="08:00"/>
</schedule>
<job>
<scheduling:retry id="retry">
<schedule>
<schedules:count count="2"/>
</schedule>
<job>
<state:flag id="flag-job" state="EXCEPTION"/>
</job>
</scheduling:retry>
</job>
</scheduling:timer>
</job>
</oddjob>
- See Also:
- Serialized Form
- Author:
- Rob Gordon.
|
Constructor Summary |
Retry()
|
| Methods inherited from class org.oddjob.scheduling.TimerBase |
getClock, getCurrent, getLastDue, getNextDue, getSchedule, getTimeZone, onReset, onStop, postStop, scheduleFrom, setClock, setJob, setNextDue, setReschedule, setSchedule, setScheduleExecutorService, setTimeZone |
| Methods inherited from class org.oddjob.framework.BaseComponent |
addIconListener, addPropertyChangeListener, addStateListener, configure, destroy, firePropertyChange, getArooaSession, iconForId, initialise, lastStateEvent, onConfigured, onInitialised, removeIconListener, removePropertyChangeListener, removeStateListener, save, setArooaContext, setArooaSession |
Retry
public Retry()
getStateOp
protected StateOperator getStateOp()
- Description copied from class:
ScheduleBase
- Sub classes provide the state operator that is used to calculate the subclasses
completion state.
- Specified by:
getStateOp in class ScheduleBase
- Returns:
- The operator. Must not be null.
begin
protected void begin()
throws ComponentPersistException
- Description copied from class:
ScheduleBase
- Sub classes must override this to submit the first execution.
- Overrides:
begin in class TimerBase
- Throws:
ComponentPersistException
setLimits
public void setLimits(Interval limits)
getLimits
public Interval getLimits()
- Specified by:
getLimits in class TimerBase
rescheduleOn
protected void rescheduleOn(State state)
throws ComponentPersistException
- Specified by:
rescheduleOn in class TimerBase
- Throws:
ComponentPersistException
reset
protected void reset(Resetable job)
- Specified by:
reset in class TimerBase