【问题标题】:How to update runtimeStatus for Azure Durable Function?如何更新 Azure Durable Function 的 runtimeStatus?
【发布时间】:2021-10-26 15:16:22
【问题描述】:

我可以通过进入 azure 存储资源管理器手动更新 runtimeStatus。存储资源管理器 -> 表 -> HubNameInstances -> 编辑实体

但是有没有一种简单的方法可以在代码中做到这一点?

【问题讨论】:

  • 你的问题太不具体了。如果你提供一个小的、独立的例子来说明你的函数正在做什么,会更容易。您显示的示例存在问题,它包含静态条件,对于 Durable Azure 函数执行 not work the way you expect
  • 在我看来,您最好花时间了解是什么导致这种“卡住”,因为这不应该发生
  • 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。

标签: c# azure azure-durable-functions


【解决方案1】:

如果您想编辑/更新持久功能实体

一个操作执行,它可能会更新实体的内部状态。它也可能调用外部服务并等待响应。实体通过使用通过可靠队列隐式发送的消息与其他实体、编排和客户端进行通信。

一个简单的Counter 实体实现为持久函数。该函数定义了三个操作,addresetget,每个操作都对整数状态进行操作。

[FunctionName("QueryCounter")]
public static async Task<HttpResponseMessage> Run(
[HttpTrigger(AuthorizationLevel.Function)] HttpRequestMessage req,
[DurableClient] IDurableEntityClient client)
{
    var entityId = new EntityId(nameof(Counter), "myCounter");
    EntityStateResponse<JObject> stateResponse = await client.ReadEntityStateAsync<JObject>(entityId);
    return req.CreateResponse(HttpStatusCode.OK, stateResponse.EntityState);
}

注意

从协调器函数调用实体类似于调用 来自协调器功能的activity function。主要区别在于实体函数是具有地址的持久对象,该地址是实体 ID。实体函数支持指定操作名称。另一方面,Activity 函数是无状态的,没有操作的概念。

参考doc for concept & doc for steps to implement in code

【讨论】:

    猜你喜欢
    • 2021-01-07
    • 2019-10-01
    • 2022-01-03
    • 1970-01-01
    • 2020-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多