/** * Schedule a task for repeated fixed-rate execution after a specific time has been reached. * * @param task the task to schedule. * @param when time of first execution. * @param period amount of time in milliseconds between subsequent executions. * @throws IllegalArgumentException if {@code when.getTime() < 0} or {@code period < 0}. * @throws IllegalStateException if the {@code Timer} has been canceled, or if the task has been * scheduled or canceled. */ public void scheduleAtFixedRate(TimerTask task, Date when, long period) { if (period <= 0 || when.getTime() < 0) { throw new IllegalArgumentException(); } long delay = when.getTime() - System.currentTimeMillis(); scheduleImpl(task, delay, period, true); }
/** * Schedule a task for single execution. If {@code when} is less than the current time, it will be * scheduled to be executed as soon as possible. * * @param task the task to schedule. * @param when time of execution. * @throws IllegalArgumentException if {@code when.getTime() < 0}. * @throws IllegalStateException if the {@code Timer} has been canceled, or if the task has been * scheduled or canceled. */ public void schedule(TimerTask task, Date when) { if (when.getTime() < 0) { throw new IllegalArgumentException(); } long delay = when.getTime() - System.currentTimeMillis(); scheduleImpl(task, delay < 0 ? 0 : delay, -1, false); }
public ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mav = new ModelAndView("systeminfo"); mav.addObject("sysprops", new TreeMap<String, String>((Map) System.getProperties())); mav.addObject("sysenv", new TreeMap<String, String>((Map) System.getenv())); mav.addObject("systime", new Date()); //Calculate app uptime duration Date appStartTime = (Date) getServletContext().getAttribute("appStartTime"); long durationMillis = new Date().getTime() - appStartTime.getTime(); String duration = DurationFormatUtils.formatDurationWords(durationMillis, true, false); mav.addObject("appUptime", duration); //Calculate system resources. Runtime runtime = Runtime.getRuntime(); long totalMem = runtime.totalMemory() / MB; long freeMem = runtime.freeMemory() / MB; long avaCPU = runtime.availableProcessors(); mav.addObject("sysres", "CPU: " + avaCPU + ", MemoryUsed: " + (totalMem - freeMem) + "M/" + totalMem + "M"); if(applicationProperties== null){ applicationProperties = new Properties(); } mav.addObject("applicationProps", applicationProperties); return mav; }
/** * Sets the date of the switch from Julian dates to Gregorian dates. You can use <code> * new Date(Long.MAX_VALUE)</code> to use a pure Julian calendar, or <code>Long.MIN_VALUE</code> * for a pure Gregorian calendar. * * @param date the date of the change. */ public void setGregorianChange(Date date) { gregorianCutover = date.getTime(); }