我正在尝试使用 WirePattern 助手在我的图表中执行一些同步。我设置config.group
为 true,因此我可以确保仅在此组件中收集和处理从同一组接收到的数据包。
为了便于讨论,这里是来自第一个输入端口的示例数据包:
<my-group>
123
</my-group>
第二个入港:
<my-group>
456
</my-group>
因为config.group
设置为 true,这两个数据包将按组匹配,我可以在我的组件中对它们做一些事情。到目前为止,一切都很好。
问题在于我想用与 2 个输入端口匹配的同一组来包装输出。这就是输出数据包组的样子:
<my-group>
123456
</my-group>
我假设config.group
默认情况下会这样做,但事实并非如此,它只是发送没有组的输出:
123456
我尝试设置config.forwardGroups
为各种值,以便仅从其中一个输入端口转发组(因为它们是相同的)。无论设置为还是true
,它都会对输出数据包进行双重包装:"portname"
["portname"]
<my-group>
<my-group>
123456
</my-group>
</my-group>
随着分组发生变化并且不再与其他组件匹配,这会导致进一步的头痛。我可以使用另一个组件手动删除其中一个组,但我不应该这样做。
如何设置 WirePattern 以继续按组匹配(使用config.group
)但仅将单个组转发到输出端口?
如果这是 WirePattern 不支持的东西,我现在不介意手动进行。我只需要知道我是否做错了什么,或者在 NoFlo 中是否还不可能。
这是我的配置供参考:
var config = {
in: ["in", "value"],
params: ["property"],
out: "out",
// This doesn't forward the group
group: true, // Wait for packets of same group
// This duplicates groups when group: true
forwardGroups: ["value"],
arrayPolicy: {
in: "all", // Wait for all indexes
params: "all" // Wait for all indexes
}
};