介绍

用于控制数据的输入动作。主要包括两种类型:主动获取型输入、被动接受性输入。

主动获取型输入

介绍

  • 主要用于控制读取者主动获取其他源的数据,比如从数据库、接口等源数据方主动获取数据。

    内置输入

  1. OneReaderInput:只执行一次的输入
  2. PeriodAcquireReaderInput:周期性执行的输入

所需参数:

  1. period[必选]: 执行周期值。n>0
  2. delay[必选]:延迟执行值。n>=0
  3. timeUnit[必选]:周期值、延迟值的单位。可选:SECONDSMINUTESHOURSDAYS
  1. QuartzReaderInput: 基于Quartz的定时输入

所需参数:

  1. jobName[可选]: 任务名称
  2. triggerName[可选]:调度名称
  3. triggerCron[必选]:Quartz Cron 表达式
  4. delaySeconds[必选]:延迟执行。单位: 秒。默认 0

自定义扩展

  1. 继承抽象类: com.starblues.rope.core.input.AbstractReaderInput
  2. 实现方法说明:```java

initialize():初始化时被调用run(): 启动运行时该输入。用于调用读取者中读取数据id(): 定义该输入的id(全局输入唯一)name(): 定义该输入的名称describe(): 定义该输入的描述configParameter(): 返回该输入所需的参数实现类。如果没有参数,则返回 nullstartAfter(): 启动之前的操作

  1. 3. 实现该输入的管理器
  2. 继承 `com.starblues.rope.core.common.manager.AbstractManager<T>` , 实现方法说明:
  3. ```java
  4. <T>: 泛型T,为当前管理器所管理的输入类,也就是2步骤所实现的输入类。
  5. getLogger():返回当前类的日志对象
  6. name():返回管理器的名称
  7. toStart(T t):启动时调用,用于启动所管理的输入的实现
  8. toStop(T t):停止时调用,用于停止所管理的输入的实现
  1. 新增3步骤实现的管理器在输入管理器工厂com.starblues.rope.core.input.manager.InputManagerFactoryinitialize 处,新增3步骤实现的输入管理器。

被动接受型输入

介绍

  • 主要用于程序被动接受其他源发送过来的数据。比如从kafka消费数据。

    系统实现

    不携带转换器

  1. 继承:com.starblues.rope.core.input.support.accept.AbstractAcceptInput

实现方法说明:

  1. initialize()[可重写覆盖]:初始化
  2. toStart(Consumer consumer):启动该输入时的调用。参数 Consumer 用于将获取的数据消费到系统中
  3. toStop():停止的实现,用于关闭自有的一些资源实现
  4. configParameter():返回该输入所需的参数实现类。如果没有参数,则返回 null
  1. 将该实现类的头部新增Spring注解@Component

携带转换器

  1. 继承:com.starblues.rope.core.input.support.accept.AbstractAcceptConverterInput<T>

实现方法说明:

  1. <T>: 泛型T,配置的转换器所转换源数据的类型。与sourceMessageType一致
  2. sourceMessageType():转换器所转换源数据的类型
  3. initialize()[可重写覆盖]:初始化
  4. customConvert(T sourceMessage):自定义转换,如果使用者没有配置转换器,则调用该方法转换数据
  5. toStart(Consumer consumer):启动该输入时的调用。参数 Consumer 用于将获取的数据消费到系统中
  6. toStop():停止的实现,用于关闭自有的一些资源实现
  7. configParameter():返回该输入所需的参数实现类。如果没有参数,则返回 null
  1. 将该实现类的头部新增Spring注解@Component