HTTP-опрос и мониторинг надежных функций в функциях Azure
Есть ли приятное место между опросом конечной точки с помощью политики и использованием шаблона мониторинга с долговременными функциями? Я проиллюстрирую слегка измененный пример мониторинга из документов Azure Durable Functions. В приведенном ниже примере настраиваемое количество секунд используется для ожидания между проверками. Кроме того, накладные расходы на долговременную функцию для проверки и воспроизведения.
public static async Task Run(DurableOrchestrationContext ctx) {
int jobId = await ctx.CallActivityAsync<string>("StartJob", ctx.GetInput<MyData>());
int pollingInterval = GetPollingInterval();
DateTime expiryTime = GetExpiryTime();
while (ctx.CurrentUtcDateTime < expiryTime) {
var jobStatus = await ctx.CallActivityAsync<string>("GetJobStatus", jobId);
if (jobStatus == "Completed") {
await ctx.CallActivityAsync("SendAlert", machineId);
break;
}
var nextCheck = ctx.CurrentUtcDateTime.AddSeconds(pollingInterval);
await ctx.CreateTimer(nextCheck, CancellationToken.None);
}
}
Если асинхронное задание, которое запускается в действии StartJob, обычно выполняется в течение одной или двух секунд, действительно ли стоило бы добавить эти накладные расходы для контрольной точки и воспроизведения, в отличие от опроса в действии StartJob с каким-либо типом политики отката?