gpt4 book ai didi

java - Apache NiFi : Output to multiple FlowFiles simultaneously?

转载 作者:搜寻专家 更新时间:2023-11-01 01:50:09 24 4
gpt4 key购买 nike

有没有办法在 NiFi 的自定义处理器中同时写入不同的流?例如,我有第三方库使用像这样工作的 API 进行重要处理:

public void process(InputStream in, OutputStream foo, OutputStream baa, List<String> args)
{
...
foo.write(things);
baa.write(stuff);
...
}

但我能找到的唯一示例都只使用一个输出流:

FlowFile transform = session.write(original, new OutputStreamCallback() {
@Override
public void process(OutputStream out) throws IOException {
out.write("stuff");
}
});

处理是分批完成的(由于其规模很大),因此执行所有处理然后写出单独的流程是不切实际的。

我能想出的唯一方法是多次处理输入:(

澄清一下,我想使用 session.write(flowfile, callback) 方法写入多个 FlowFile,因此可以分别发送/管理不同的流

最佳答案

NiFi API 基于一次作用于一个流文件,但您应该能够执行如下操作:

        FlowFile flowFile1 = session.create();
final AtomicReference<FlowFile> holder = new AtomicReference<>(session.create());

flowFile1 = session.write(flowFile1, new OutputStreamCallback() {
@Override
public void process(OutputStream out) throws IOException {

FlowFile flowFile2 = session.write(holder.get(), new OutputStreamCallback() {
@Override
public void process(OutputStream out) throws IOException {

}
});
holder.set(flowFile2);

}
});

关于java - Apache NiFi : Output to multiple FlowFiles simultaneously?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38302042/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com