// // / Interval logging // private void initializeIntervalLogging() { synchronized (intervalLoggingLock) { if (vo.getLoggingType() != DataPointVO.LoggingTypes.INTERVAL) return; // Are we using a custom timer? if (this.timer == null) intervalLoggingTask = new TimeoutTask( new FixedRateTrigger( 0, Common.getMillis( vo.getIntervalLoggingPeriodType(), vo.getIntervalLoggingPeriod())), this); else intervalLoggingTask = new TimeoutTask( new FixedRateTrigger( 0, Common.getMillis( vo.getIntervalLoggingPeriodType(), vo.getIntervalLoggingPeriod())), this, this.timer); intervalValue = pointValue; if (vo.getIntervalLoggingType() == DataPointVO.IntervalLoggingTypes.AVERAGE) { intervalStartTime = System.currentTimeMillis(); averagingValues = new ArrayList<IValueTime>(); } } }
@DwrPermission(admin = true) public synchronized void scheduleRestart() { if (RESTART_TASK == null) { SystemEventType.raiseEvent( new SystemEventType(SystemEventType.TYPE_SYSTEM_SHUTDOWN), System.currentTimeMillis(), false, new TranslatableMessage("modules.restartScheduledBy", Common.getUser().getUsername())); long timeout = Common.getMillis(Common.TimePeriods.SECONDS, 10); RESTART_TASK = new TimeoutTask( timeout, new TimeoutClient() { @Override public void scheduleTimeout(long fireTime) { File restartFlag = new File(Common.M2M2_HOME, "RESTART"); if (!restartFlag.exists()) { try { FileWriter fw = new FileWriter(restartFlag); fw.write("restart"); fw.close(); } catch (IOException e) { LOG.error("Unabled to create restart flag file", e); } } Providers.get(ILifecycle.class).terminate(); } }); } }