如何检测生产环境中旧版Cadence分支是否仍运行及是否可安全删除?
检测生产环境旧版Cadence分支及安全删除的最优机制
核心检测方法
- 用Cadence内置工具查版本元数据
直接通过CLI或API揪出带旧分支标记的工作流:- 执行
cadence workflow list --query "CustomAttributes.WorkflowVersion = 'old-branch-vx.x.x'",筛选旧分支实例 - 调用Workflow Service API,拉取所有未完成工作流的版本属性,排查旧分支启动的实例
- 执行
- 给代码加版本埋点
在新旧分支的工作流里,把分支名、commit hash这类唯一标识塞进自定义搜索属性,之后靠Cadence的搜索功能快速定位旧分支实例:// 示例:启动工作流时设置版本属性 err := workflow.SetSearchAttributes(ctx, map[string]interface{}{ "WorkflowVersion": "feature-old-branch-abc123", }) - 盯紧任务队列
如果旧分支绑定了专属任务队列,监控队列的活跃Worker数、任务处理量——要是没Worker在线、也没新任务进来,说明旧分支已经没人用了
安全删除的验证流程
- 停更旧分支Worker:先停止部署旧分支的Worker节点,观察够一个业务最长工作流周期,确认没新任务失败
- 锁死旧分支实例创建:通过Cadence控制台或API,禁止旧分支版本的工作流启动新实例,只让已在运行的实例做完
- 最终确认清理:等所有旧分支实例执行完,再用上面的检测方法复查一遍,确认没残留就可以删分支了
内容的提问来源于stack exchange,提问作者Sharan Foga
相关产品推荐
相关产品推荐

