延迟 (delay)
延迟消息传递或限制消息速率。
输入
任何消息对象。
输出
延迟后的消息对象。
详细说明
延迟节点可以延迟消息传递或限制消息通过的速率。
延迟模式
- 延迟: 将消息延迟固定时间后发送
- 速率限制: 限制消息通过的速率
- 随机延迟: 在指定范围内随机延迟
延迟选项
- 固定延迟: 延迟固定的秒数、分钟或小时
- 基于消息: 使用消息属性中的延迟值
- 随机延迟: 在最小和最大值之间随机延迟
速率限制选项
- 限制速率: 每秒/分钟/小时允许通过的消息数
- 丢弃中间消息: 超出速率时丢弃消息
- 排队等待: 将消息排队等待发送
示例
固定延迟:
javascript
// 输入
msg = {payload: "Hello"}
// 延迟5秒后输出
// 输出(5秒后)
msg = {payload: "Hello"}
速率限制:
javascript
// 配置:每秒最多1条消息
// 输入:连续3条消息
msg1 = {payload: "消息1"} // 立即通过
msg2 = {payload: "消息2"} // 1秒后通过
msg3 = {payload: "消息3"} // 2秒后通过
基于消息的延迟:
javascript
// 输入
msg = {
payload: "数据",
delay: 3000 // 延迟3秒
}
// 3秒后输出
msg = {
payload: "数据",
delay: 3000
}
应用场景
- 防抖动处理
- 速率限制
- 定时发送
- 流量控制
注意事项
- 延迟期间消息存储在内存中
- 重新部署会清除等待中的消息
- 大量延迟消息可能影响内存使用