【发布时间】:2020-10-19 13:06:15
【问题描述】:
[FunctionName("SetDurable")]
public static async Task<HttpResponseMessage> SetDurable(
[HttpTrigger(AuthorizationLevel.Function, "get", Route = "SetDurable/{durable}")] HttpRequestMessage req,
[DurableClient] IDurableEntityClient client,
string durable)
{
var entityId = new EntityId(DurableEntitiesNames.BirSessionIdentificatorEntity, DurableEntitiesNames.BirSessionIdentificatorKey);
await client.SignalEntityAsync<IBirSessionIdentificator>(entityId, identificator => identificator.Set(durable) );
//await Task.Delay(2000);
EntityStateResponse<JObject> stateResponse = await client.ReadEntityStateAsync<JObject>(entityId);
var setResult = stateResponse.EntityState.ToObject<BirSessionIdentificatorResult>().Sid;
return new HttpResponseMessage(HttpStatusCode.OK){Content = new StringContent($"{setResult}")};
}
在 Azure Functions v3 中,当我尝试设置持久实体的值并立即尝试读取此值时,它返回旧值而不是新值。 但是,当我取消注释 Task.Delay 并在设置持久实体的值后让它等待 2 秒时,我在尝试读取它时得到了正确的值。
有没有办法等待持久实体值设置操作完成?
【问题讨论】:
-
您好,刚刚检查一下,我的回答对您有帮助吗?如果是这样,请mark it as answer 或随时要求澄清。
标签: c# azure azure-functions azure-durable-functions