.setFlowControlSettings( FlowControlSettings.newBuilder() .setLimitExceededBehavior(LimitExceededBehavior.Ignore) .build()) .build());
.setMaxOutstandingElementCount(100000L) .setMaxOutstandingRequestBytes(10485760L) .setLimitExceededBehavior(LimitExceededBehavior.ThrowException) .build()) .build());
.flowControlSettings .toBuilder() .setLimitExceededBehavior(LimitExceededBehavior.ThrowException) .build());
@Test public void testRestoreAfterFail() throws FlowController.FlowControlException { FlowController flowController = new FlowController( FlowControlSettings.newBuilder() .setMaxOutstandingElementCount(2L) .setMaxOutstandingRequestBytes(1L) .setLimitExceededBehavior(LimitExceededBehavior.ThrowException) .build()); flowController.reserve(1, 1); try { flowController.reserve(1, 1); throw new IllegalStateException("flowController should not have any bytes left"); } catch (FlowController.MaxOutstandingRequestBytesReachedException e) { // Ignore. } flowController.reserve(1, 0); }
@Test public void testReserveRelease_blockedByElementCount() throws Exception { FlowController flowController = new FlowController( FlowControlSettings.newBuilder() .setMaxOutstandingElementCount(10L) .setMaxOutstandingRequestBytes(100L) .setLimitExceededBehavior(LimitExceededBehavior.Block) .build()); testBlockingReserveRelease(flowController, 10, 10); }
@Test public void testReserveRelease_ignore_ok() throws Exception { FlowController flowController = new FlowController( FlowControlSettings.newBuilder() .setMaxOutstandingElementCount(1L) .setMaxOutstandingRequestBytes(1L) .setLimitExceededBehavior(LimitExceededBehavior.Ignore) .build()); flowController.reserve(1, 1); flowController.release(1, 1); }
@Test public void testReserveRelease_noLimits_ok() throws Exception { FlowController flowController = new FlowController( FlowControlSettings.newBuilder() .setLimitExceededBehavior(LimitExceededBehavior.Block) .build()); flowController.reserve(1, 1); flowController.release(1, 1); }
@Test public void testReserveRelease_ok() throws Exception { FlowController flowController = new FlowController( FlowControlSettings.newBuilder() .setMaxOutstandingElementCount(10L) .setMaxOutstandingRequestBytes(10L) .setLimitExceededBehavior(LimitExceededBehavior.Block) .build()); flowController.reserve(1, 1); flowController.release(1, 1); }
private static FlowController getDisabledFlowController() { return new FlowController( FlowControlSettings.newBuilder() .setLimitExceededBehavior(LimitExceededBehavior.Ignore) .build()); }
@Test public void testReserveRelease_rejectedByElementCount_noBytesLimit() throws Exception { FlowController flowController = new FlowController( FlowControlSettings.newBuilder() .setMaxOutstandingElementCount(10L) .setLimitExceededBehavior(LimitExceededBehavior.ThrowException) .build()); testRejectedReserveRelease( flowController, 10, 10, FlowController.MaxOutstandingElementCountReachedException.class); }
@Test public void testReserveRelease_rejectedByElementCount() throws Exception { FlowController flowController = new FlowController( FlowControlSettings.newBuilder() .setMaxOutstandingElementCount(10L) .setMaxOutstandingRequestBytes(100L) .setLimitExceededBehavior(LimitExceededBehavior.ThrowException) .build()); testRejectedReserveRelease( flowController, 10, 10, FlowController.MaxOutstandingElementCountReachedException.class); }
@Test public void testReserveRelease_blockedByNumberOfBytes_noElementCountLimit() throws Exception { FlowController flowController = new FlowController( FlowControlSettings.newBuilder() .setMaxOutstandingRequestBytes(10L) .setLimitExceededBehavior(LimitExceededBehavior.Block) .build()); testBlockingReserveRelease(flowController, 10, 10); }
@Test public void testReserveRelease_blockedByNumberOfBytes() throws Exception { FlowController flowController = new FlowController( FlowControlSettings.newBuilder() .setMaxOutstandingElementCount(100L) .setMaxOutstandingRequestBytes(10L) .setLimitExceededBehavior(LimitExceededBehavior.Block) .build()); testBlockingReserveRelease(flowController, 10, 10); }
@Test public void testReserveRelease_blockedByElementCount_noBytesLimit() throws Exception { FlowController flowController = new FlowController( FlowControlSettings.newBuilder() .setMaxOutstandingElementCount(10L) .setLimitExceededBehavior(LimitExceededBehavior.Block) .build()); testBlockingReserveRelease(flowController, 10, 10); }
/** Get a new builder. */ public static Builder newBuilder() { return new AutoValue_BatchingSettings.Builder() .setIsEnabled(true) .setElementCountThreshold(1L) .setRequestByteThreshold(1L) .setDelayThreshold(Duration.ofMillis(1)) .setFlowControlSettings( FlowControlSettings.newBuilder() .setLimitExceededBehavior(LimitExceededBehavior.Ignore) .build()); }
@Test public void testReserveRelease_rejectedByNumberOfBytes_noElementCountLimit() throws Exception { FlowController flowController = new FlowController( FlowControlSettings.newBuilder() .setMaxOutstandingRequestBytes(10L) .setLimitExceededBehavior(LimitExceededBehavior.ThrowException) .build()); testRejectedReserveRelease( flowController, 10, 10, FlowController.MaxOutstandingRequestBytesReachedException.class); }
@Test public void testReserveRelease_rejectedByNumberOfBytes() throws Exception { FlowController flowController = new FlowController( FlowControlSettings.newBuilder() .setMaxOutstandingElementCount(100L) .setMaxOutstandingRequestBytes(10L) .setLimitExceededBehavior(LimitExceededBehavior.ThrowException) .build()); testRejectedReserveRelease( flowController, 10, 10, FlowController.MaxOutstandingRequestBytesReachedException.class); }
/** Get a new builder. */ public static Builder newBuilder() { return new AutoValue_BatchingSettings.Builder() .setIsEnabled(true) .setElementCountThreshold(1L) .setRequestByteThreshold(1L) .setDelayThreshold(Duration.ofMillis(1)) .setFlowControlSettings( FlowControlSettings.newBuilder() .setLimitExceededBehavior(LimitExceededBehavior.Ignore) .build()); }
.getFlowControlSettings() .toBuilder() .setLimitExceededBehavior(LimitExceededBehavior.Block) .build()) .build());
FlowControlSettings.newBuilder() .setMaxOutstandingElementCount(1L) .setLimitExceededBehavior(FlowController.LimitExceededBehavior.ThrowException) .build());