文章目录
- AbstractProcessor API
-
- Processor Initialization : Processor初始化
- Exposing Processor's Relationship : 暴露Processor的关系
- Exposing Processor Properties : 暴露Processor的属性
- Validating Processor Properties : 验证Processor属性
- Responding to Changes in Configuration : 响应配置变更
- Performing the Work : 执行工作
- When Processors are Triggered : 何时触发Processor
AbstractProcessor API
由于绝大多数 Processor将通过 extending the AbstractProcessor来创建, 因此我们将在本节中研究AbstractProcessor。AbstractProcessor 提供了Processor开发人员感兴趣的几个方法。
Processor Initialization : Processor初始化
在创建Processor时, 在调用任何其他方法之前, 将调用AbstractProcessor的init方法。
该方法接收一个参数, 其类型为ProcessorInitializationContext。
ProcessorInitializationContext 对象为Porcessor提供了ComponentLog、Processor的唯一标识符(Identifier)和ControllerServiceLookup。
这些对象都由AbstractProcessor存储, 可以由子类分别通过getLogger、getIdentifier和getcontrollerservicelookup方法获得。(其实是由AbstractProcessor的父类AbstractSessionFactoryProcessor存储的,方法也是定义在父类中😉)
Exposing Processor’s Relationship : 暴露Processor的关系
为了让Processor将一个FlowFile传输到一个新的目的地进行后续处理, Processor必须首先能够向框架公开它当前支持的所有关系。
这允许应用程序的用户通过在Processor 之间创建连接并为这些连接分配适当的关系来将Processor彼此连接。
Processor通过覆盖getRelationships方法来公开有效的Relationships集合。
此方法不接收任何参数, 并返回a set of Relationship对象。