Fix hookOnCancel handing logic in SentinelReactorSubscriber (#1089)
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
This commit is contained in:
parent
b0905547ff
commit
b05502f8c2
|
|
@ -155,7 +155,7 @@ public class SentinelReactorSubscriber<T> extends InheritableBaseSubscriber<T> {
|
|||
|
||||
@Override
|
||||
protected void hookOnCancel() {
|
||||
|
||||
tryCompleteEntry();
|
||||
}
|
||||
|
||||
private boolean tryCompleteEntry() {
|
||||
|
|
|
|||
|
|
@ -162,6 +162,28 @@ public class MonoSentinelOperatorIntegrationTest {
|
|||
assertEquals(1, cn.totalException());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMultipleReactorTransformerLatterFlowControl() {
|
||||
String resourceName1 = createResourceName("testMultipleReactorTransformerLatterFlowControl1");
|
||||
String resourceName2 = createResourceName("testMultipleReactorTransformerLatterFlowControl2");
|
||||
FlowRuleManager.loadRules(Collections.singletonList(
|
||||
new FlowRule(resourceName2).setCount(0)
|
||||
));
|
||||
StepVerifier.create(Mono.just(2)
|
||||
.transform(new SentinelReactorTransformer<>(resourceName1))
|
||||
.transform(new SentinelReactorTransformer<>(resourceName2)))
|
||||
.expectError(BlockException.class)
|
||||
.verify();
|
||||
|
||||
ClusterNode cn1 = ClusterBuilderSlot.getClusterNode(resourceName1);
|
||||
assertNotNull(cn1);
|
||||
ClusterNode cn2 = ClusterBuilderSlot.getClusterNode(resourceName2);
|
||||
assertNotNull(cn2);
|
||||
assertEquals(1, cn2.blockRequest());
|
||||
assertEquals(1, cn1.totalSuccess());
|
||||
FlowRuleManager.loadRules(new ArrayList<>());
|
||||
}
|
||||
|
||||
private String createResourceName(String resourceName) {
|
||||
return "reactor_test_mono_" + resourceName;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue