public int getWindowPeriodMillis() { if (StringUtils.isNotBlank(windowPeriod)) { return TimePeriodUtils.getMillisecondsOfPeriod(Period.parse(windowPeriod)); } else { return 0; } }
public static long formatMillisecondsByPeriod(long milliseconds, Period period) { return formatSecondsByPeriod(milliseconds / 1000, period) * 1000; }
public static int getMillisecondsOfPeriod(Period period) { return getSecondsOfPeriod(period) * 1000; } }
@Override public StreamWindow addNewWindow(long initialTime) { synchronized (windowBuckets) { if (!reject(initialTime)) { Long windowStartTime = TimePeriodUtils.formatMillisecondsByPeriod(initialTime, windowPeriod); Long windowEndTime = windowStartTime + TimePeriodUtils.getMillisecondsOfPeriod(windowPeriod); StreamWindow window = StreamWindowRepository.getSingletonInstance().createWindow(windowStartTime, windowEndTime, windowMargin); window.register(collector); addWindow(window); return window; } else { throw new IllegalStateException("Failed to create new window, as " + DateTimeUtil.millisecondsToHumanDateWithMilliseconds(initialTime) + " is too late, only allow timestamp after " + DateTimeUtil.millisecondsToHumanDateWithMilliseconds(rejectTime)); } } }
long windowPeriod = TimePeriodUtils.getMillisecondsOfPeriod(Period.parse(segments[0])); distinctWindow = new DistinctValuesInTimeBatchWindow(this, windowPeriod, wisbValues);
@Test public void testFormatSecondsByPeriod1H() throws ParseException { Period period = new Period("PT1h"); Seconds seconds = period.toStandardSeconds(); Assert.assertEquals(60 * 60, seconds.getSeconds()); long time = DateTimeUtil.humanDateToSeconds("2015-07-01 13:56:12"); long expect = DateTimeUtil.humanDateToSeconds("2015-07-01 13:00:00"); long result = TimePeriodUtils.formatSecondsByPeriod(time, seconds); Assert.assertEquals(expect, result); time = DateTimeUtil.humanDateToSeconds("2015-07-01 03:14:59"); expect = DateTimeUtil.humanDateToSeconds("2015-07-01 03:00:00"); result = TimePeriodUtils.formatSecondsByPeriod(time, seconds); Assert.assertEquals(expect, result); time = DateTimeUtil.humanDateToSeconds("2015-07-01 03:30:59"); expect = DateTimeUtil.humanDateToSeconds("2015-07-01 03:00:00"); result = TimePeriodUtils.formatSecondsByPeriod(time, seconds); Assert.assertEquals(expect, result); }
String nodataExpression = columnWithNodataExpression.getNodataExpression(); String[] segments = nodataExpression.split(","); long windowPeriodInSeconds = TimePeriodUtils.getSecondsOfPeriod(Period.parse(segments[0])); if (policies.containsKey(policyName)) { LOG.info("Stream: {} nodata alert policy: {} already exists", streamName, policyName);
long windowPeriod = TimePeriodUtils.getMillisecondsOfPeriod(Period.parse(segments[0])); distinctWindow = new DistinctValuesInTimeWindow(windowPeriod); this.wisbType = NoDataWisbType.valueOf(segments[1]);
@Test public void testFormatSecondsByPeriod15M() throws ParseException { Period period = new Period("PT15m"); Seconds seconds = period.toStandardSeconds(); Assert.assertEquals(15 * 60, seconds.getSeconds()); long time = DateTimeUtil.humanDateToSeconds("2015-07-01 13:56:12"); long expect = DateTimeUtil.humanDateToSeconds("2015-07-01 13:45:00"); long result = TimePeriodUtils.formatSecondsByPeriod(time, seconds); Assert.assertEquals(expect, result); time = DateTimeUtil.humanDateToSeconds("2015-07-01 03:14:59"); expect = DateTimeUtil.humanDateToSeconds("2015-07-01 03:00:00"); result = TimePeriodUtils.formatSecondsByPeriod(time, seconds); Assert.assertEquals(expect, result); time = DateTimeUtil.humanDateToSeconds("2015-07-01 03:14:59"); expect = DateTimeUtil.humanDateToSeconds("2015-07-01 03:00:00"); result = TimePeriodUtils.formatSecondsByPeriod(time, seconds); Assert.assertEquals(expect, result); }
@Test public void testPeriod() { Assert.assertEquals(30 * 60 * 1000, TimePeriodUtils.getMillisecondsOfPeriod(Period.parse("PT30m"))); Assert.assertEquals(30 * 60 * 1000, TimePeriodUtils.getMillisecondsOfPeriod(Period.millis(30 * 60 * 1000))); Assert.assertEquals("PT1800S", Period.millis(30 * 60 * 1000).toString()); } }