我想得到有像这样的session.get(fileSize>1)过滤器的流文件,但这个例子对我不起作用,我应该怎么做才能让这个任务工作?(附注:你能给我更好的解释吗?)
发布于 2017-11-03 22:26:00
该版本的session.get()接受一个FlowFileFilter对象。在上面的代码中,您传递的是一个布尔值(如果在这一点上定义了fileSize )。好消息是,由于FlowFileFilter接口只有一个方法,因此可以使用闭包强制作为FlowFileFilter对象提供闭包。这是一个Groovy脚本的示例,它只接受大小大于1的流文件:
import static org.apache.nifi.processor.FlowFileFilter.FlowFileFilterResult
def flowFiles = session.get({f ->
return f.size > 0 ? FlowFileFilterResult.ACCEPT_AND_CONTINUE
: FlowFileFilterResult.REJECT_AND_CONTINUE}
as FlowFileFilter)
flowFiles?.each {session.transfer(it, REL_SUCCESS)}https://stackoverflow.com/questions/47091582
复制相似问题