在流程控制中,经常会碰到异步方式对结果进行确认,如果出错的情况下进行重试,这篇文章结合具体的示例对trigger在Node-RED中流程编辑的方式进行进一步说明。
事前准备
以容器方式启动Node-RED服务,启动命令如下所示:
启动命令:docker run -it -p 1880:1880 -v $PWD/data:/data -e TZ=Asia/Shanghai --name nodered -d nodered/node-red:1.0.4
使用场景:连接性检测
场景说明:如果持续能够获取输入的情况下,表明连接是正常的,如果一旦不能有数据过来,可能是硬件传感器的数据没有获取,说明是失败的情况。
trigger节点设定信息详细如下所示:
部署之后,执行结果如下所示
当然也可以将输出进行合并,显示用的输出节点合并之后如下图所示
部署并执行,结果如下所示
retry逻辑
上述的示例有一个问题就是一旦出错,不能够持续性地进行提示,再结合一个trigger即可实现常见的retry功能,从而实现一旦停止5s以上不输入就会持续输出信息,如果数据一旦继续输入就会不再提示错误信息的功能。flow信息如下所示
- trigger 5s节点设定信息如下所示
- retry节点设定如下所示: