You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ACC WebHook触发Design Automation重复执行的问题排查请求

ACC WebHook触发Design Automation重复执行的原因及解决方案

可能的原因:

  • 事件未过滤:代码中注释掉了事件类型判断逻辑,ACC会针对文件版本的多个状态(比如新增、修改)发送事件,不同事件都会触发DA执行。
  • 回调响应延迟:WebHook接口中直接await了Design Automation任务的执行,导致接口无法立即返回200响应。ACC的WebHook服务如果在超时时间内没收到响应,会自动重试发送回调,造成重复触发。
  • 无状态校验:没有利用自定义元数据storm:process-state做重复执行拦截,同一版本即使已经处理过,仍会再次触发DA任务。
  • WebHook配置重复:ACC中可能重复订阅了相同的事件规则,导致同一操作触发多次回调。

对应的解决方案:

  1. 恢复事件过滤
    只处理目标事件类型(比如dm.version.added),避免无关事件触发执行:

    string eventType = body["eventType"].ToString();
    if (eventType != "dm.version.added") return Ok();
    
  2. 异步化DA任务执行
    不要在WebHook回调中同步等待DA任务完成,改用队列系统(如Hangfire、本地消息队列)将任务入队后立即返回响应,避免ACC重试:

    // 示例:使用Hangfire将任务入队
    BackgroundJob.Enqueue(() => revitDesignAutomate.ExecuteJob(projectId, versionId, modelName, callback));
    // 立即返回Ok,无需await
    
  3. 增加状态校验
    利用自定义元数据判断版本是否已处理,避免重复执行:

    if (stormProcessState == "processing" || stormProcessState == "completed")
    {
        return Ok();
    }
    // 执行DA任务前,先调用ACC API将该版本的storm:process-state更新为processing
    // 待DA任务完成后再更新为completed
    
  4. 检查ACC WebHook配置
    登录ACC后台,确认是否存在重复的WebHook订阅,或者事件触发条件设置过于宽泛,调整为精准的触发规则。

内容的提问来源于stack exchange,提问作者chuongmep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 21:53:26