【问题标题】:How to administer the Azure Durable functions Task Hub locally?如何在本地管理 Azure 持久功能任务中心?
【发布时间】:2019-02-27 17:03:50
【问题描述】:

我目前正在开发 Azure 持久函数,但在我尝试运行我的函数后,我遇到了未完成的业务流程会在下一次挂起的问题。

问题出在任务中心,正如对此question 的回答中所述:

编排已创建,但在之前的运行中未完成。编排是持久且长时间运行的,因此它们将继续尝试运行,直到它们完成或失败,即使在您关闭并重新启动函数应用后也是如此。

现在的问题是,虽然有关于如何在 Azure 上管理任务中心的信息,但我在进行本地测试时却找不到任何关于如何管理它的信息。

现在,每次出现问题时我都会更改测试中心的名称,但我更希望有几行代码来简单地清除任务中心中的所有现有数据。

如何在代码中本地管理 Azure Durable 函数任务中心?

【问题讨论】:

  • 您可以进入并从存储和表中删除任务中心。我确信这是可编写脚本的。但是,继续更改中心名称然后每月左右将其全部删除会更容易。
  • 如果它在 Azure 上运行,它绝对应该是可编写脚本的。我在本地找不到任务中心或其部件。
  • 使用 Azure 存储资源管理器并使用添加帐户附加到本地模拟器。除非您自定义了配置,否则默认值都应该没问题。 azure.microsoft.com/en-us/features/storage-explorer

标签: c# azure orchestration azure-durable-functions


【解决方案1】:

按照 cmets 中的建议,您可以使用 Azure 存储模拟器来清除 TaskHub 的本地实例。如果您的本地模拟存储中没有您关心的任何其他数据,您实际上可以使用命令AzureStorageEmulator.exe clear all。根据this answer,你可以在C:\Program Files (x86)\Microsoft SDKs\Azure\Storage Emulator找到那个exe。

如果您确实有正在本地模拟的 blob、表或队列,而您不想擦除只是为了删除对 TaskHub 的引用,您可以按照 Murray Foxcroft 在 cmets 中的建议进行操作,并使用存储资源管理器连接到本地模拟器,并删除对特定 TaskHub 的所有引用。 TaskHub 使用表、blob 和队列的组合,因此请确保彻底。

【讨论】:

  • 是的,Murray 的评论很有帮助,但这仍然意味着我必须在测试运行之间手动更改/删除某些内容。我真的需要一些可以放入我的代码的东西,所以我不需要担心手动管理
  • 如上所述,如果您在本地模拟器中没有任何依赖于持久函数所依赖的 blob、表或队列,则可以使用命令AzureStorageEmulator.exe clear all。这可以很容易地作为启动脚本的第一步包含在内,该脚本既清除模拟器又启动您的函数应用程序。
【解决方案2】:

Durable Functions Monitor VsCode 扩展显示您所有的任务中心,并允许管理、清理甚至删除它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-05
    • 2022-06-14
    • 1970-01-01
    • 1970-01-01
    • 2019-02-10
    • 1970-01-01
    相关资源
    最近更新 更多