我有一些react-x / Dataflow管道代码,我认为这是转换为持久函数的不错选择。从本质上讲,该代码正在抓取一个每秒限制一个请求的速率的第三方API。我相信我需要做的是安排一个持久的计时器,然后再调用一个子协调器。问题之一是完成任务的响应可能需要300-5000毫秒,因此,当我查看日志时,可以看到在同一秒内触发的任务,而在5秒后触发的任务。
我能否让Orchestrator函数至少每隔一秒钟触发一次子Orchestrator任务,并且如果该子任务在一秒钟内还没有完成,就可以继续触发下一个Sub-orchestrator任务?
>代码与示例计时器代码几乎相同,但是使用suborchestratorasync而不是callactivityasync。
[FunctionName("BillingIssuer")]
public static async Task Run(
[OrchestrationTrigger] DurableOrchestrationContext context)
{
foreach (var city in cities)
{
DateTime deadline = context.CurrentUtcDateTime.AddSeconds(1));
await context.CreateTimer(deadline, CancellationToken.None);
await context.CallSubOrchestratorAsync("SubOrchestration", city);
}
}