1

我有一个场景,我将使用 MQ 输入节点接收消息,并且基于消息中存在的源系统的值,我需要形成主题字符串并发布消息。这就是我的流程的样子:

MQInput -> 计算 -> 发布

我使用以下方法填充主题的值: SET OutputRoot.Properties.Topic = 'TopicName/' || 源名称;

如果消息包含一个源系统,这可以正常工作。

但是,消息可能包含多个源系统。是否可以使用上述命令在多个主题字符串上发布消息?(像这样)

SET OutputRoot.Properties.Topic = '主题/' || 源名称1;

SET OutputRoot.Properties.Topic = '主题/' || 源名称2;

感谢任何建议。

4

2 回答 2

2

您应该从具有不同主题字符串集的 Compute 节点传播 2 条单独的消息。

您可以使用 PROPAGATE ESQL 语句传播消息而不返回。所以你的代码应该是这样的:

<Create message in OutputRoot>

SET OutputRoot.Properties.Topic = 'TopicName/' || sourceName1;
PROPAGATE DELETE NONE;

SET OutputRoot.Properties.Topic = 'TopicName/' || sourceName2;
RETURN TRUE;
于 2016-06-30T08:26:03.537 回答
0

在属性中,您只能为每个属性设置一个值。

要执行您想要执行的操作,您必须生成多条消息,这可以通过使用 ESQL 中的 PROPAGATE 关键字来完成,如上所述。

于 2016-07-15T19:36:50.620 回答