public void startTimer(java.util.Timer collectTimer) { TimerTask collector = new TimerTask() { public void run() { // The collect is done in a different thread // So a collect failure will no prevent other collect from // running Thread subcollector = new Thread("Collector/" + Timer.this.name) { @Override public void run() { try { Timer.this.collectAll(); } catch (RuntimeException e) { Timer.this.log(Level.FATAL, e, "A fatal error occured during collect: %s", e.getMessage()); } } }; subcollector.setDaemon(true); subcollector.start(); } }; collectTimer.scheduleAtFixedRate(collector, getTimeout() * 1000L, getStep() * 1000L); }
public HostStarter getHost(HostInfo info) { String hostName = info.getName(); HostStarter starter = hostList.get(hostName); if(starter == null) { starter = new HostStarter(info); hostList.put(hostName, starter); starter.setTimeout(getTimeout()); starter.setStep(getStep()); starter.setParent(this); } return starter; }
logger.trace(Util.delayedFormatString("probe %s/%s will use timer %s", host, type, timer)); p.setStep(timer.getStep()); p.setTimeout(timer.getTimeout());
@Test public void buildDefault() throws IOException { PropertiesManager pm = Tools.makePm(testFolder, "timeout=1", "step=5", "slowcollecttime=1"); Timer t = new Timer(Timer.DEFAULTNAME, pm.timers.get(Timer.DEFAULTNAME)); Assert.assertEquals("bad timeout", 1, t.getTimeout()); Assert.assertEquals("bad step", 5, t.getStep()); Assert.assertEquals("bad slow collect time", 1, t.getSlowCollectTime()); }
@Test public void buildOther() throws IOException { PropertiesManager pm = Tools.makePm(testFolder, "timeout=1", "step=5", "timers=slow", "timer.slow.timeout=30", "timer.slow.step=3600", "timer.slow.slowcollecttime=15"); Timer t = new Timer("slow", pm.timers.get("slow")); Assert.assertEquals("bad timeout", 30, t.getTimeout()); Assert.assertEquals("bad step", 3600, t.getStep()); Assert.assertEquals("bad slow collect time", 15, t.getSlowCollectTime()); }