gpt4 book ai didi

Azure Durable实体函数使用计时器触发器获取和设置时间戳信息

转载 作者:行者123 更新时间:2023-12-04 03:59:29 32 4
gpt4 key购买 nike

我试图将时间戳信息存储在持久实体中,并在每次触发触发器时检索它。我是这样做的。我希望当前执行设置的时间戳值可用于下一个触发器。但是当控件到达“string prevTS = wait context.CallEntityAsync(entityId, "Get");”时再次返回到函数的开始处。我在这里缺少什么。

我希望在计时器触发器之间按顺序执行。'''

 ***public static class GetOpenDataRealtimeFeed
{
[FunctionName("GetOpenDataOrchestrator")]
public static async Task<List<string>> RunOrchestrator(
[OrchestrationTrigger] IDurableOrchestrationContext context, Binder binder, ILogger log)
{
var outputs = new List<string>();
var entityId = new EntityId(nameof(GetPrevLastModifiedTimestamp), "entityKey2");
string prevTS = await context.CallEntityAsync<string>(entityId, "Get");

string currentTS = DateTime.Now.ToString();
outputs.Add(currentTS);
outputs.Add(prevTS);
context.SignalEntity(entityId, "Set", currentTS);
return null;

}

//Durable entity function to get & set the last modified timestamp
[FunctionName("GetPrevLastModifiedTimestamp")]
public static void GetPrevLastModifiedTimestamp([EntityTrigger] IDurableEntityContext ctx)
{
switch (ctx.OperationName.ToLowerInvariant())
{
case "set":
ctx.SetState(ctx.GetInput<string>());
break;
case "get":
ctx.Return(ctx.GetState<string>());
break;
}
}


[FunctionName("getOpenDataRealtimeFeed_Trigger")]
public static async Task Run(
[TimerTrigger("%triggerTimer%")] TimerInfo myTimer,
[DurableClient] IDurableOrchestrationClient starter,
ILogger log)
{
// Function input comes from the request content.
string instanceId = await starter.StartNewAsync("GetOpenDataOrchestrator", null);
log.LogInformation($"Started orchestration with ID = '{instanceId}'.");
}
}
}***

'''

最佳答案

我假设您在调试时指的是当前行。如果是这样,则为 expected .

由于持久函数在等待持久客户端调用后重播函数,因此执行不会经过第一轮。只有最终重播才会是“顺序”步骤。

关于Azure Durable实体函数使用计时器触发器获取和设置时间戳信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63294744/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com