|
|
|
@ -125,7 +125,7 @@ class DefaultTbContext implements TbContext { |
|
|
|
|
|
|
|
@Override |
|
|
|
public void enqueue(TbMsg tbMsg, String queueName, Runnable onSuccess, Consumer<Throwable> onFailure) { |
|
|
|
TopicPartitionInfo tpi = mainCtx.resolve(ServiceType.TB_RULE_ENGINE, queueName, getTenantId(), tbMsg.getOriginator()); |
|
|
|
TopicPartitionInfo tpi = resolvePartition(tbMsg, queueName); |
|
|
|
enqueue(tpi, tbMsg, onFailure, onSuccess); |
|
|
|
} |
|
|
|
|
|
|
|
@ -142,46 +142,54 @@ class DefaultTbContext implements TbContext { |
|
|
|
|
|
|
|
@Override |
|
|
|
public void enqueueForTellFailure(TbMsg tbMsg, String failureMessage) { |
|
|
|
TopicPartitionInfo tpi = mainCtx.resolve(ServiceType.TB_RULE_ENGINE, getTenantId(), tbMsg.getOriginator()); |
|
|
|
TopicPartitionInfo tpi = resolvePartition(tbMsg); |
|
|
|
enqueueForTellNext(tpi, tbMsg, Collections.singleton(TbRelationTypes.FAILURE), failureMessage, null, null); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void enqueueForTellNext(TbMsg tbMsg, String relationType) { |
|
|
|
TopicPartitionInfo tpi = mainCtx.resolve(ServiceType.TB_RULE_ENGINE, getTenantId(), tbMsg.getOriginator()); |
|
|
|
TopicPartitionInfo tpi = resolvePartition(tbMsg); |
|
|
|
enqueueForTellNext(tpi, tbMsg, Collections.singleton(relationType), null, null, null); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void enqueueForTellNext(TbMsg tbMsg, Set<String> relationTypes) { |
|
|
|
TopicPartitionInfo tpi = mainCtx.resolve(ServiceType.TB_RULE_ENGINE, getTenantId(), tbMsg.getOriginator()); |
|
|
|
TopicPartitionInfo tpi = resolvePartition(tbMsg); |
|
|
|
enqueueForTellNext(tpi, tbMsg, relationTypes, null, null, null); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void enqueueForTellNext(TbMsg tbMsg, String relationType, Runnable onSuccess, Consumer<Throwable> onFailure) { |
|
|
|
TopicPartitionInfo tpi = mainCtx.resolve(ServiceType.TB_RULE_ENGINE, getTenantId(), tbMsg.getOriginator()); |
|
|
|
TopicPartitionInfo tpi = resolvePartition(tbMsg); |
|
|
|
enqueueForTellNext(tpi, tbMsg, Collections.singleton(relationType), null, onSuccess, onFailure); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void enqueueForTellNext(TbMsg tbMsg, Set<String> relationTypes, Runnable onSuccess, Consumer<Throwable> onFailure) { |
|
|
|
TopicPartitionInfo tpi = mainCtx.resolve(ServiceType.TB_RULE_ENGINE, getTenantId(), tbMsg.getOriginator()); |
|
|
|
TopicPartitionInfo tpi = resolvePartition(tbMsg); |
|
|
|
enqueueForTellNext(tpi, tbMsg, relationTypes, null, onSuccess, onFailure); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void enqueueForTellNext(TbMsg tbMsg, String queueName, String relationType, Runnable onSuccess, Consumer<Throwable> onFailure) { |
|
|
|
TopicPartitionInfo tpi = mainCtx.resolve(ServiceType.TB_RULE_ENGINE, queueName, getTenantId(), tbMsg.getOriginator()); |
|
|
|
TopicPartitionInfo tpi = resolvePartition(tbMsg, queueName); |
|
|
|
enqueueForTellNext(tpi, tbMsg, Collections.singleton(relationType), null, onSuccess, onFailure); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void enqueueForTellNext(TbMsg tbMsg, String queueName, Set<String> relationTypes, Runnable onSuccess, Consumer<Throwable> onFailure) { |
|
|
|
TopicPartitionInfo tpi = mainCtx.resolve(ServiceType.TB_RULE_ENGINE, queueName, getTenantId(), tbMsg.getOriginator()); |
|
|
|
TopicPartitionInfo tpi = resolvePartition(tbMsg, queueName); |
|
|
|
enqueueForTellNext(tpi, tbMsg, relationTypes, null, onSuccess, onFailure); |
|
|
|
} |
|
|
|
|
|
|
|
private TopicPartitionInfo resolvePartition(TbMsg tbMsg, String queueName) { |
|
|
|
return mainCtx.resolve(ServiceType.TB_RULE_ENGINE, queueName, getTenantId(), tbMsg.getOriginator()); |
|
|
|
} |
|
|
|
|
|
|
|
private TopicPartitionInfo resolvePartition(TbMsg tbMsg) { |
|
|
|
return resolvePartition(tbMsg, tbMsg.getQueueName()); |
|
|
|
} |
|
|
|
|
|
|
|
private void enqueueForTellNext(TopicPartitionInfo tpi, TbMsg source, Set<String> relationTypes, String failureMessage, Runnable onSuccess, Consumer<Throwable> onFailure) { |
|
|
|
RuleChainId ruleChainId = nodeCtx.getSelf().getRuleChainId(); |
|
|
|
RuleNodeId ruleNodeId = nodeCtx.getSelf().getId(); |
|
|
|
|