跳到主要内容

流程控制-触发控制

注入节点触发流程控制

问题背景

  • 流程启动时触发: 流程启动时触发一次,比如 初始化上下文变量,发送流程重启通知等
  • 周期触发: 按照指定的时间间隔触发,比如 每隔 60s 调用一次 API 从其他平台同步数据
  • 指定时间触发: 按照指定的时间触发,比如 每个工作日23点执行

流程启动时触发

在首次启动流程时触发一次

解决方案

使用 注入节点 作为 流程启动时触发的节点,设置 注入节点 的 触发类型 为 流程启动时触发

注入节点 配置如下:

示例

示例JSON

[{"id":"e60b12c1.93bb3","type":"inject","z":"714695530b415411","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":true,"onceDelay":"","topic":"","payload":"Started!","payloadType":"str","x":360,"y":840,"wires":[["9b1d7727.56d0f8"]]},{"id":"9b1d7727.56d0f8","type":"debug","z":"714695530b415411","active":true,"console":"false","complete":"false","x":630,"y":840,"wires":[]}]

运行结果

周期触发

固定时间间隔触发流程执行,比如每隔5s调用一次API从第三方平台读取数据同步到魔方、固定时间执行健康检查

解决方案

使用 注入节点 作为 周期触发的节点,设置 注入节点 的 触发类型 为 周期性执行,在下方填入时间间隔,单位为秒

示例

示例JSON

[{"id":"372cfc32.bcd244","type":"inject","z":"714695530b415411","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"5","crontab":"","once":false,"onceDelay":"","topic":"","payload":"","payloadType":"date","x":320,"y":1040,"wires":[["6c63c499.ce3adc"]]},{"id":"6c63c499.ce3adc","type":"debug","z":"714695530b415411","active":true,"console":"false","complete":"false","x":580,"y":1040,"wires":[]}]

运行结果

复制 示例JSON 导入运行后可以看到每隔 5s 会有一条时间戳数据输出

指定时间触发

特定时间触发一次流程执行,比如每个工作日下午4点执行一次

解决方案

使用 注入节点 作为 指定时间触发的节点,设置 注入节点 的 触发类型 为 指定时间触发,在下方填入指定时间,格式为 HH:mm:ss

示例

示例JSON

[{"id":"24579bcb.5c9814","type":"inject","z":"714695530b415411","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"00 16 * * 1,2,3,4,5","once":false,"onceDelay":"","topic":"","payload":"It is 4pm on a weekday!","payloadType":"str","x":350,"y":1260,"wires":[["145b508a.f3325f"]]},{"id":"145b508a.f3325f","type":"debug","z":"714695530b415411","active":true,"console":"false","complete":"false","x":570,"y":1260,"wires":[]}]

运行结果

为了演示,我们将指定时间设置为 10:13 ,即每个工作日下午 10:13 执行一次, 结果如下