Node-RED使用指南:20:使用trigger进行限速控制

在这里插入图片描述
trigger是Node-RED中的一个常用组件,这篇文章继续结合实例介绍使用trigger进行限速控制的方法。

事前准备

以容器方式启动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

数组拆分使用示例

flow设定

在前面的文章也介绍过一个类似的使用示例,主要使用如下三个节点组成的一个flow:
在这里插入图片描述

  • 数字数组节点:
    使用JSON数组类型,内容为[1,2,3,4,5],一个包含五个元素的数字数组
    在这里插入图片描述
  • 拆分数组元素节点:split类型,缺省设定
  • 结果显示节点:Debug类型,缺省设定

执行结果

执行部署并手工触发,执行结果如下所示,可以看到结果的输出基本在同一时间内执行完毕:
在这里插入图片描述

限速使用示例

同样使用这个flow,我们在拆分和结果显示之间添加一个限速器(trigger),flow修改为如下:
在这里插入图片描述
限速器的详细设定如下所示:
在这里插入图片描述

执行结果

执行部署并手工触发,执行结果如下所示,可以看到拆分后的元素按照每秒一个的速度进行显示:
在这里插入图片描述

JSON格式的flow

[{"id":"3ea13cf4.f55564","type":"inject","z":"73554227.4474dc","name":"数字数组","topic":"","payload":"[1,2,3,4,5]","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":140,"y":160,"wires":[["beb988fe.cf5fb8"]]},{"id":"beb988fe.cf5fb8","type":"split","z":"73554227.4474dc","name":"拆分数组元素","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":340,"y":160,"wires":[["84cc4c2b.45a6c"]]},{"id":"c027e9ef.fe1f38","type":"debug","z":"73554227.4474dc","name":"结果显示","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":720,"y":160,"wires":[]},{"id":"84cc4c2b.45a6c","type":"delay","z":"73554227.4474dc","name":"限速器","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":550,"y":160,"wires":[["c027e9ef.fe1f38"]]}]
发布了1133 篇原创文章 · 获赞 1357 · 访问量 410万+

猜你喜欢

转载自blog.csdn.net/liumiaocn/article/details/104746938