@Override public void start() { for (Limiter limiter : this.underlyingLimiters) { limiter.start(); } }
@Override public void start() { this.underlying.start(); RateComputingLimiterContainer.this.subLimiterPermitCounts.add(this.localPermitCount); }
public void startRateControl() throws ExecutionException { getRateLimiter().start(); }
@BeforeClass public void setUp() { this.limiter = new RateBasedLimiter(20, TimeUnit.SECONDS); this.limiter.start(); }
@Override protected void map(Text key, NullWritable value, Context context) throws IOException, InterruptedException { try { Configuration configuration = context.getConfiguration(); Stressor stressor = context.getConfiguration().getClass(StressTestUtils.STRESSOR_CLASS, StressTestUtils.DEFAULT_STRESSOR_CLASS, Stressor.class).newInstance(); stressor.configure(context.getConfiguration()); RateComputingLimiterContainer limiterContainer = new RateComputingLimiterContainer(); Limiter limiter = limiterContainer.decorateLimiter(createLimiter(configuration, this.broker)); ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor(); ScheduledFuture<?> future = executor.scheduleAtFixedRate(new Recorder(limiterContainer, context, true), 0, 15, TimeUnit.SECONDS); limiter.start(); stressor.run(limiter); limiter.stop(); future.cancel(false); ExecutorsUtils.shutdownExecutorService(executor, Optional.<Logger>absent(), 10, TimeUnit.SECONDS); } catch (ReflectiveOperationException roe) { throw new IOException(roe); } } }
@BeforeClass public void setUp() { this.limiter = new TimeBasedLimiter(3l, TimeUnit.SECONDS); this.limiter.start(); }
public LimitingExtractorDecorator(Extractor<S, D> extractor, Limiter limiter, TaskState state) { this.extractor = extractor; this.limiter = limiter; this.taskState = state; this.limiter.start(); this.eventSubmitter = new EventSubmitter.Builder(TaskMetrics.get(taskState).getMetricContext(), "gobblin.runtime.task").build(); }
@Override public void run() { try { this.limiter.start(); this.stressor.run(this.limiter); this.limiter.stop(); } catch (InterruptedException ie) { log.error("Error: ", ie); } } }
@Test public void testThrottling() throws InterruptedException { Limiter limiter = new CountBasedLimiter(10); limiter.start(); for (int i = 0; i < 10; i++) { Assert.assertTrue(limiter.acquirePermits(1) != null); } Assert.assertTrue(limiter.acquirePermits(1) == null); limiter.stop(); } }
@Override public void start() { for (Limiter limiter : this.underlyingLimiters) { limiter.start(); } }
public void startRateControl() throws ExecutionException { getRateLimiter().start(); }
public LimitingExtractorDecorator(Extractor<S, D> extractor, Limiter limiter, TaskState state) { this.extractor = extractor; this.limiter = limiter; this.taskState = state; this.limiter.start(); this.eventSubmitter = new EventSubmitter.Builder(TaskMetrics.get(taskState).getMetricContext(), "gobblin.runtime.task").build(); }