public static TimerTaskDefinition create(String name, long delay, long period, Runnable task) { if (task == null) { throw new IllegalArgumentException("<task> must not be null!"); } TimerTaskDefinition def = new TimerTaskDefinition(); def.setName(name); def.setDelay(delay); def.setPeriod(period); def.setTask(task); return def; }
public static TimerTaskDefinition create(String name, long delayAndPeriod, Runnable task) { return create(name, delayAndPeriod, delayAndPeriod, task); }
@Override public String toString() { return "TimerTaskDefinition [name=" + getName() + "]"; }
/** * Registers a new task definition with this scheduler. */ public void scheduleTaskDefinition(TimerTaskDefinition def) { if (def == null) { throw new IllegalArgumentException("<timerTaskDefinition> must not be null!"); } if (!m_started) { // queue for start m_taskDefinitions.add(def); return; } long delay = Math.max(def.getDelay(), 0); long period = Math.max(def.getPeriod(), -1); Runnable task = def.getTask(); if (task == null) { throw new IllegalArgumentException("<timerTaskDefinition> has null task!"); } TimerTask timerTask = task instanceof TimerTask ? (TimerTask) task : new TimerTaskRunnableAdapter(task); Timer timer = getTimer(); if (LOG.isDebugEnabled()) { LOG.debug("register task <{}>, delay:<{}>, period:<{}>", new Object[] { def, delay, period }); } if (period == -1) { timer.schedule(timerTask, delay); } else { timer.schedule(timerTask, delay, period); } }