public void withWindowConfig(Window windowConfig) throws IOException { if (windowConfig.getWindowLength() instanceof Window.Duration) { BaseWindowedBolt.Duration windowLength = new BaseWindowedBolt.Duration(((Window.Duration) windowConfig.getWindowLength()).getDurationMs(), TimeUnit.MILLISECONDS); if (windowConfig.getSlidingInterval() instanceof Window.Duration) { BaseWindowedBolt.Duration slidingInterval = new BaseWindowedBolt.Duration(((Window.Duration) windowConfig.getSlidingInterval()).getDurationMs(), TimeUnit.MILLISECONDS); withWindow(windowLength, slidingInterval); } else if (windowConfig.getSlidingInterval() instanceof Window.Count) { BaseWindowedBolt.Count windowLength = new BaseWindowedBolt.Count(((Window.Count) windowConfig.getWindowLength()).getCount()); if (windowConfig.getSlidingInterval() instanceof Window.Duration) { BaseWindowedBolt.Duration slidingInterval = new BaseWindowedBolt.Duration(((Window.Duration) windowConfig.getWindowLength()).getDurationMs(), TimeUnit.MILLISECONDS); withWindow(windowLength, slidingInterval); } else if (windowConfig.getSlidingInterval() instanceof Window.Count) {
Duration windowLength = new Duration(((Window.Duration) windowConfig.getWindowLength()).getDurationMs(), TimeUnit.MILLISECONDS); if (windowConfig.getSlidingInterval() instanceof Window.Duration) { Duration slidingInterval = new Duration(((Window.Duration) windowConfig.getSlidingInterval()).getDurationMs(), TimeUnit.MILLISECONDS); withWindow(windowLength, slidingInterval); } else if (windowConfig.getSlidingInterval() instanceof Window.Count) { Count windowLength = new Count(((Window.Count) windowConfig.getWindowLength()).getCount()); if (windowConfig.getSlidingInterval() instanceof Window.Duration) { Duration slidingInterval = new Duration(((Window.Duration) windowConfig.getWindowLength()).getDurationMs(), TimeUnit.MILLISECONDS); withWindow(windowLength, slidingInterval); } else if (windowConfig.getSlidingInterval() instanceof Window.Count) {
private void mayBeUpdateTopologyConfig(Window window) { int messageTimeoutSecs = DELTA; int maxPending = DELTA; Window.WindowParam windowLength = window.getWindowLength(); Window.WindowParam slidingInterval = window.getSlidingInterval(); if (windowLength instanceof Window.Duration) { messageTimeoutSecs += ((Window.Duration) windowLength).getDurationMs()/1000; } else if (windowLength instanceof Window.Count) { maxPending += ((Window.Count) windowLength).getCount(); } if (slidingInterval instanceof Window.Duration) { messageTimeoutSecs += ((Window.Duration) slidingInterval).getDurationMs()/1000; } else if (slidingInterval instanceof Window.Count) { maxPending += ((Window.Count) slidingInterval).getCount(); } setIfGreater(StormTopologyLayoutConstants.TOPOLOGY_MESSAGE_TIMEOUT_SECS, messageTimeoutSecs); setIfGreater(StormTopologyLayoutConstants.TOPOLOGY_MAX_SPOUT_PENDING, maxPending); }