Tutte le pipeline che andiamo a creare all'interno di Azure DevOps hanno chiaramente durata differente in base al numero e alla complessità degli step che contengono per realizzare un determinato obiettivo predisposto dalla pipeline stessa. Azure DevOps applica alcuni meccanismi di protezione che impediscono ai task di essere eseguiti troppo a lungo: infatti, superati i limiti di default, i task verranno automaticamente cancellati dal servizio per evitare di incorrere in problemi come costi esagerati, per quanto riguarda i consumi su hosted-agents, piuttosto che servizi in stallo su agent di tipo self-hosted.
Il timeout, ovvero il tempo massimo di esecuzione per i task prima che Azure DevOps inizi la cancellazione (a partire da quando il job viene eseguito, non messo in coda), se non impostato a livello di job, come vedremo a breve, è fissato a 60 minuti. Se viene impostato al valore zero, però, non significa che i task verranno subito cancellati ma, anzi, avrà un valore differente in base alla tipologia di agent che stiamo referenziando dal job stesso. Esso assumerà una durata di:
- 6 ore per hosted-agent che sono associati a progetti/repository pubblici;
- 60 minuti per hosted-agents che sono associati a progetti/repository privati (se non si è pagato per una capacity differente);
- illimitata su agent self-hosted;
Per poter modificare il valore di default, a livello di pipeline YAML non dovremo fare altro che impostare la proprietà timeoutInMinutes impostandola al valore desiredato:
jobs: - job: Test timeoutInMinutes: X cancelTimeoutInMinutes: Y
Allo stesso modo, la proprietà cancelTimeoutInMinutes andrà ad impostare un limite differente di timeout sull'esecuzione del task una volta che il precedente (o il task stesso) è stato cancellato. Supponendo, ad esempio, che il task A duri più del periodo impostato da timeoutInMinutes, Azure DevOps cercherà di terminare il task in modalità graceful ma, se questo non dovesse terminare entro il periodo indicato da cancelTimeoutInMinutes, impostato ad un periodo di default di 5 minuti, Azure DevOps effettuerà una chiusura forzata.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare la funzione EF.Parameter per forzare la parametrizzazione di una costante con Entity Framework
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Managed deployment strategy in Azure DevOps
Recuperare automaticamente un utente e aggiungerlo ad un gruppo di Azure DevOps
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Migliorare l'organizzazione delle risorse con Azure Policy
Ordinare randomicamente una lista in C#
Gestione degli eventi nei Web component HTML
Utilizzare gRPC su App Service di Azure
Utilizzare Copilot con Azure Cosmos DB
Configurare e gestire sidecar container in Azure App Service