使用Redis防止并发工作流运行

用于平台n8n,通过Redis防止工作流程的并发运行,确保每次执行的唯一性和稳定性,避免重复执行带来的冲突和错误,提高工作效率和可靠性。

2025/7/8
43 个节点
复杂
手动复杂executeworkflowtriggersticky noteexecuteworkflowredisstopanderrornoopwait高级逻辑路由条件
分类:
Complex WorkflowManual TriggeredData Processing & AnalysisBusiness Process Automation
集成服务:
ExecuteWorkflowTriggerSticky NoteExecuteWorkflowRedisStopAndErrorNoOpWait

适用人群

适用于需要确保工作流不同时运行的开发者和团队,尤其是在处理重要数据或资源时。适合以下人群:
- 开发者:需要通过工作流自动化来提高效率。
- 项目经理:希望在项目中确保任务的顺序执行。
- 运维人员:需要监控和管理多个并发工作流的状态。
- 数据分析师:在分析数据时需要防止数据冲突或重复处理。

解决的问题

此工作流解决了并发执行的问题,确保在同一时间内只有一个工作流在运行。通过使用 Redis 来跟踪工作流的状态,避免了由于并发执行而导致的数据冲突和资源竞争。

工作流程

  • 手动触发:用户手动启动工作流。
    2. 设置超时:为工作流设置超时时间,默认设置为 600 秒
    3. 检查工作流状态:通过 Redis 获取当前工作流的状态,判断是否已经在执行。
    4. 状态判断:使用条件判断节点(Switch)来判断动作类型(get/set/unset)。
    5. 获取状态:如果状态为 'get',则获取当前执行状态;如果为 'set',则更新状态为 'working';如果为 'unset',则结束工作流。
    6. 执行逻辑:根据状态更新工作流的状态,并在必要时停止并返回错误信息。
    7. 结束工作流:在工作流执行完成后,更新 Redis 中的状态为 'unset',以便下次可以重新执行。
  • 自定义指南

    用户可以根据以下方式自定义和调整此工作流:
    - 修改超时时间:在设置步骤中调整超时时间,以满足特定需求。
    - 更改状态值:在设置工作流状态的步骤中,可以根据不同的需求修改状态值,例如从 'working' 修改为 'processing'。
    - 添加额外逻辑:在 Switch 节点中添加更多条件,以支持更复杂的业务逻辑。
    - 集成其他服务:根据需要,将工作流与其他服务集成,例如发送通知或记录日志,增强工作流的功能。