当前位置: 首页 > news >正文

NIFI的处理器:ExecuteGroovyScript 2.4.0

ExecuteGroovyScript是常用的处理器之一,用于执行GroovyScript脚本。该脚本负责处理传入的流文件(例如传输到SUCCESS或删除)以及由该脚本创建的任何流文件。如果处理不完整或不正确,会话将被回滚。

属性值-失败处理策略 Failure strategy:如何处理未处理的异常。如果你想通过代码管理异常,那么保留默认值“rollback”。如果选择了“转移到失败”并且发生了未处理的异常,则此会话中从传入队列接收到的所有flowFiles都将转移到“失败”关系,并设置了其他属性:ERROR_MESSAGE和ERROR_STACKTRACE。如果选择了“回滚”并且发生了未处理的异常,则从传入队列接收到的所有flowFiles都将受到惩罚并返回。如果处理器没有传入连接,则此参数无效。

该脚本的性能大约是java语言的10%,性能不高,调试效率也很低,但是编写灵活,使用方便。

如下为部分代码示例:

import groovy.json.JsonSlurper
import groovy.json.JsonBuilder

// 解析输入 JSON
def flowFile = session.get();
if(!flowFile) return;
def jsonText = flowFile.read().getText('UTF-8');
def inputJson = new JsonSlurper().parseText(jsonText);

// 获取 timestamp
def timestamp = inputJson.timestamp

// 创建输出数组
def outputList = []

// 遍历 plc1 和 plc2,并提取每个设备的数据
inputJson.each { key, value ->
    if (!key.equalsIgnoreCase("ct_timestamp")) {
        // 克隆原始的 plc 数据
        def deviceData = value.collectEntries { k, v -> [(k): v] }

        // 创建输出数据结构
        def outputData = [
            data: deviceData,
            device_name: key,
            data_time: ct_timestamp
        ]

        // 将转换后的数据添加到输出列表
        outputList.add(outputData)
    }
}

// 返回输出 JSON
def outputJson = new JsonBuilder(outputList).toPrettyString()
flowFile=session.write(flowFile, {outputStream ->outputStream.write(
        outputJson.bytes
) } as OutputStreamCallback);
REL_SUCCESS << flowFile;

相关文章:

  • C# AI(Trae工具+claude3.5-sonnet) 写前后端
  • A1-A2 英语学习系列 第五集
  • Java枚举详解
  • 抽象:C++命名作用域与函数调用
  • IO pin的transition约束从哪来?
  • 高级认知型Agent
  • dedecms织梦全局变量调用方法总结
  • 如何在电脑上登录多个抖音账号?多开不同IP技巧分解
  • 广东省省考备考(第十六天5.21)—言语:语句排序题(听课后强化)
  • React中 lazy与 Suspense懒加载的组件
  • git合并多次commit提交
  • CentOS:搭建国内软件repository,以实现自动yum网络安装
  • JUC高并发编程
  • 自动化软件如何确保高可用性和容错性?
  • 云蝠智能大模型呼叫动态情感共情能力上线!
  • 大语言模型 17 - MCP Model Context Protocol 介绍对比分析 基本环境配置
  • 双活数据中心解决方案
  • 如何在Java中处理PDF文档(教程)
  • :-1: error: msvc-version.conf loaded but QMAKE_MSC_VER isn‘t set错误原因及解决方法
  • WSD3043 MOSFET 在吸黑头仪中的应用
  • 凤阳鼓楼瓦片脱落背后:涉事公司十年前曾因违规施工致文保建筑被烧毁
  • 31只北交所主题基金齐刷净值纪录,年内最高涨超80%,已有产品打出“限购牌”
  • 特朗普宣布打造“金穹”导弹防御系统,计划3年内运转
  • 全国治安管理工作视频会召开
  • 痴情与真爱
  • 长沙至赣州高铁初步设计获批,可填补湘赣两省斜向交通空白