J'ai une fonction azur durable (2.0) qui fait appel à elle-même pour une orchestration éternelle, sur la base des éléments suivants cet article . Code ci-dessous. Cela fonctionne bien et s'exécute pendant environ 20 minutes (disons environ 50 itérations). Cependant, après ce temps, il se met en veille et cesse de fonctionner. Si je me rends sur le portail Azure, que je clique sur l'application Fonctions et que je clique sur la liste des fonctions (c'est-à-dire que je ne fais que cliquer, sans modifier les paramètres ni arrêter ou démarrer quoi que ce soit), il se réveille soudainement et continue à fonctionner sans problème. Il n'y a pas d'erreurs ou de problèmes dans les journaux, juste une indication de la période d'inactivité, puis les journaux reprennent. Est-ce qu'il me manque un paramètre quelque part ?
public static async Task Run([OrchestrationTrigger] DurableOrchestrationContextBase ctx, ILogger log)
{
try
{
var config = ctx.GetInput<Config>();
config = await ctx.CallActivityAsync<Config>("GetConfig", null);
await ctx.CallActivityAsync("ProcessDetails", config);
var nextCheckpoint = ctx.CurrentUtcDateTime.AddSeconds(config.PollingIntervalInSeconds);
await ctx.CreateTimer(nextCheckpoint, CancellationToken.None);
ctx.ContinueAsNew(config);
}
catch (Exception ex)
{
log.LogError($"[Error!][Failed with: {ex.ToString()}]");
throw;
}
}
Après avoir appuyé sur le bouton de rafraîchissement comme décrit par @davidebbo, le problème persiste, voir le journal ci-dessous.
Autre mise à jour, même si le numéro sur GitHub semble résolu, j'avais encore besoin de faire le double réglage de configuration comme indiqué ci-dessous afin d'obtenir ma fonction fiable.
{
"version": "2.0",
"extensions": {
"durableTask": {
"HubName": "myHub",
"maxConcurrentActivityFunctions": 10,
"maxConcurrentOrchestratorFunctions": 1
}
},
"durableTask": {
"HubName": "myHub",
"maxConcurrentActivityFunctions": 10,
"maxConcurrentOrchestratorFunctions": 1
},
"functionTimeout": "00:10:00"
}
Aujourd'hui, nous avons toujours des problèmes après avoir optimisé le code, même si les mesures semblent solides.