0

收集器节点问题:我目前正在使用收集器节点对消息(XML)进行分组。我的要求是收集消息,直到收到最后一条消息。(从文件输入读取)

  1. 控制终端:我正在发送控制消息以停止收集并传播到下一个节点。但这不起作用。因为它仍在等待满足超时/数量条件。

我的问题:在收到最后一条消息之前,我可以使用什么条件来收集消息?

4

2 回答 2

1

在收集器节点上添加一个单独的输入终端,用于完成收集。向第二个终端发送消息后,收集完成并传播。

于 2017-08-21T22:03:18.183 回答
0

控制终端可用于在传播完整收集时向收集器节点发出信号,而不是确定收集何时完成。

当接收到设定数量的消息或所有输入终端的超时时间都用完时,收集就完成了。

因此,如果您事先不知道要在集合中包含多少条消息,您有 3 个选项:

  • 将消息数量设置为 0,并为输入终端设置适当的超时。

这样,节点将包括在第一条消息和集合中的超时值之间的时间内收到的所有消息。

  • 设置较大的数字作为消息数量并使用集合过期

随着收集到期,不完整的收集可以传播到到期终端,但这与以前的方法基本相同。

  • 开发您自己的收集器流程

您可以使用 MQ 输入、获取和输出节点开发用于组合消息的流,将中间组合消息保留在 MQ 队列中。使用此流程来组合您的输入并将完整的消息发送到您的处理流程的输入队列中。

于 2017-05-25T10:42:30.923 回答