【问题标题】:Waiting for DeleteForgeAppAsync to proceed等待 DeleteForgeAppAsync 继续
【发布时间】:2020-05-07 09:07:51
【问题描述】:

我正在使用 Forge .NET SDK。要清除我的 Forge App 帐户下的所有 appbundles 和活动,我调用:

        await _designAutomation.DeleteForgeAppAsync("me");

之后我需要(重新)为我的 Forge 应用创建一个新昵称,然后(重新)创建所需的 AppBundle 和 Activity:

        await _designAutomation.ForgeAppsApi.CreateNicknameAsync("me", new NicknameRecord { Nickname = NICKNAME });
        await EnsureAppBundle();
        await EnsureActivity();

上述三个调用中的一个经常失败,因为 Forge 应用程序仍在被删除,例如昵称创建冲突,或者 AppBundle/Activity 无法创建。

https://forge.autodesk.com/en/docs/design-automation/v3/reference/http/forgeapps-id-DELETE/ 的 Forge 文档说:这可能需要 2 分钟。在此期间,应用将无法发出成功的请求。

对 DeleteForgeAppAsync 的异步调用是否必须等待删除完成?

感谢您的帮助。

马克西姆

【问题讨论】:

  • 一旦await _designAutomation.DeleteForgeAppAsync("me"); 收到响应(即204 ok),它就会返回。通常 204 表示请求已被服务器完成,因此发生了一些可疑的事情。您收到 204 作为对 await _designAutomation.DeleteForgeAppAsync("me"); 的回复,对吗?
  • 是的,我收到 204 响应。但我认为.NET SDK 应该提供等待完全删除的功能。否则我们怎么知道什么时候可以尝试在已清除的 Forge App 中创建昵称、appbundle 等?
  • forge .net sdk 只是根据github.com/Autodesk-Forge/forge-api-dotnet-design.automation/… 对端点进行调用所以是的,如果有一个端点来检查这项工作是否完成
  • 所有端点检查是否完成并返回 409“Forge App 正在被删除。”。您可以使用它来找出答案。

标签: autodesk-forge autodesk-designautomation


【解决方案1】:

您可以通过在删除伪造应用程序后重试 409 响应来处理这种情况。 如果您想在 409 次重试周围添加更多逻辑,您也可以随时检查正文。

【讨论】:

    【解决方案2】:

    根据文档 here,尽管 SDK API 似乎是同步的,但您需要等待一些时间才能使删除操作生效:

    这最多可能需要 2 分钟。在此期间,应用将无法发出成功的请求。

    【讨论】:

    • 我知道,那个文档引用在我最初的帖子中......等等“一些”?现在是多少时间?
    猜你喜欢
    • 1970-01-01
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 1970-01-01
    • 2020-09-05
    相关资源
    最近更新 更多