信号触发
信号触发器让多个工作流之间可以互相通信。一个工作流发出信号,另一个工作流收到信号后自动启动——无需人工介入。
核心概念
信号触发的本质是一对多的广播通信:发送方通过「发送信号」节点广播一个信号 ID,所有监听这个 ID 的信号触发器都会收到并启动。一个信号可以同时唤醒多个流程。
信号可以携带数据。发送方附带的数据会自动尝试 JSON 解析,解析成功后存入接收方配置的变量中。
配置步骤
以两个工作流为例——流程 A 发信号,流程 B 收信号并弹出通知。
流程 A(发送方):手动执行 → 发送信号
流程 B(接收方):信号触发 → 显示通知
- 拖入「信号触发」节点,信号 ID 填
order_updated(必须和发送方完全一致) - 配置执行方式和接收数据变量名
- 拖入「显示通知」节点
- 保存后,流程 A 执行时流程 B 会自动收到信号并启动
参数说明
信号 ID
信号的唯一标识,发送方和接收方必须完全一致(区分大小写)。建议用有意义的英文命名:
order_updated → 订单更新了
data_sync_complete → 数据同步完成
crawl_finished → 采集结束了
接收数据
发送方附带的数据自动 JSON 解析后存入的变量名。比如填 data,后续节点就能用 {{data}} 引用接收到的内容。
如果发送方没带数据,或数据不是合法 JSON,变量值保持原样(字符串)。
执行方式
触发器支持两种执行方式,决定工作流在哪个页面上运行:
| 方式 | 说明 | 需配置 |
|---|---|---|
| 打开新标签页 | 新建一个浏览器标签页,加载指定 URL 后执行 | 执行页面 URL(必填) |
| 匹配已打开的页面 | 在已打开的标签页中按 URL 匹配,匹配到后在该页面执行 | 匹配模式(Chrome match patterns 格式,参见 URL 匹配模式) |
执行页面 URL 支持通过 {{变量名}} 引用接收到的数据(详见变量名),实现动态指定目标页面。匹配模式固定不变,不支持变量。
激活标签页
开关打开后,收到信号时会自动把浏览器焦点切到正在执行流程的标签页。适合需要用户在页面上看到操作结果的场景;纯后台数据处理可以关掉。
使用场景
信号触发适合多流程联动的场景:
- 登录流程跑完后发信号,数据采集流程收到后自动开始抓数据
- 定时巡检流程发现异常后发信号,通知流程收到后弹出告警
- 一个主流程拆成多个子流程并行跑,用信号串联执行顺序
常见问题
信号触发一直等待不启动
现象:流程始终不启动,日志显示等待信号中。
原因:信号 ID 拼写不一致(大小写敏感),或发送方流程还没执行。
解决:检查发送方和接收方的信号 ID 是否字母大小写完全一致。先用「手动执行」触发发送方跑一次,确认信号发出。