可以使用Azure耐用功能通过context.CreateTimer每秒调度任务吗?

时间:2019-06-18 16:52:36

标签: azure-functions rate-limiting azure-durable-functions

我有一些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);
    }
}

0 个答案:

没有答案
相关问题