/** * Clears all listeners. * <p> * NOTE: This will result in race conditions if {@link #addTimerListener(com.netflix.hystrix.util.HystrixTimer.TimerListener)} is being concurrently called. * </p> */ public static void reset() { ScheduledExecutor ex = INSTANCE.executor.getAndSet(null); if (ex != null && ex.getThreadPool() != null) { ex.getThreadPool().shutdownNow(); } }
ScheduledFuture<?> f = executor.get().getThreadPool().scheduleAtFixedRate(r, listener.getIntervalTimeInMilliseconds(), listener.getIntervalTimeInMilliseconds(), TimeUnit.MILLISECONDS); return new TimerReference(listener, f);
@Test public void testThreadPoolSizeDefault() { HystrixTimer hystrixTimer = HystrixTimer.getInstance(); hystrixTimer.startThreadIfNeeded(); assertEquals(Runtime.getRuntime().availableProcessors(), hystrixTimer.executor.get().getThreadPool().getCorePoolSize()); }
ScheduledFuture<?> f = executor.get().getThreadPool().scheduleAtFixedRate(r, listener.getIntervalTimeInMilliseconds(), listener.getIntervalTimeInMilliseconds(), TimeUnit.MILLISECONDS); return new TimerReference(listener, f);
/** * Clears all listeners. * <p> * NOTE: This will result in race conditions if {@link #addTimerListener(com.netflix.hystrix.util.HystrixTimer.TimerListener)} is being concurrently called. * </p> */ public static void reset() { ScheduledExecutor ex = INSTANCE.executor.getAndSet(null); if (ex != null && ex.getThreadPool() != null) { ex.getThreadPool().shutdownNow(); } }
@Test public void testThreadPoolSizeConfiguredWithBuilder() { HystrixTimerThreadPoolProperties.Setter builder = HystrixTimerThreadPoolProperties.Setter().withCoreSize(1); final HystrixTimerThreadPoolProperties props = new HystrixTimerThreadPoolProperties(builder) { }; HystrixPropertiesStrategy strategy = new HystrixPropertiesStrategy() { @Override public HystrixTimerThreadPoolProperties getTimerThreadPoolProperties() { return props; } }; HystrixPlugins.getInstance().registerPropertiesStrategy(strategy); HystrixTimer hystrixTimer = HystrixTimer.getInstance(); hystrixTimer.startThreadIfNeeded(); assertEquals(1, hystrixTimer.executor.get().getThreadPool().getCorePoolSize()); }