I web job sono uno strumento comodissimo per chi sviluppa applicazioni web, perché permette di andare oltre al processo web e di mettere in piedi processi continui o ripetitivi in qualunque linguaggio vogliamo.
Essi si affiancano e vivono all'interno dello stesso service plan dell'applicazione web. Questo significa che se la bilanciamo su più istanze, per affrontare più carichi, anche i web job verranno replicati e saranno presenti con più processi, uno per web job per istanza. Se questo è ottimo in contesti di scalabilità, può non esserlo in processi dove necessitiamo una singola istanza, per evitare concorrenza nelle operazioni.
Per ovviare a questo problema possiamo configurare il web job affinché sia in modalità singleton. Abbiamo due modi per farlo: il primo è quello di creare e pubblicare un file settings.job, dove presente anche l'eseguibile, contenente il seguente Json.
{ "is_singleton": true }
Il secondo modo consiste invece nel pubblicare il web job e usare le API REST. Nello specifico occorre chiamare il seguente indirizzo, con i nomi corretti.
https://[nomeSito].scm.azurewebsites.net/api/continuouswebjobs/[nomeJob]/settings
Se lo chiamiamo con GET otterremo l'impostazione corrente, probabilmente vuota, altrimenti possiamo fare una chiamata in PUT, con il medesimo Json indicato in precedenza.
Da questo momento in poi solo un'istanza tra tutte quelle presenti verrà eseguita. Per approfondimenti:
https://github.com/projectkudu/kudu/wiki/WebJobs-API
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Cambiare la chiave di partizionamento di Azure Cosmos DB
Aggiungere interattività lato server in Blazor 8
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Migliora le tue soluzioni ASP.NET Core con Azure OpenAI
Creazione di plugin per Tailwind CSS: espandere le Funzionalità del Framework
Configurare policy CORS in Azure Container Apps
Potenziare Azure AI Search con la ricerca vettoriale
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON
Creazione di plugin per Tailwind CSS: espandere le funzionalità del framework dinamicamente
What's new in Azure Functions and Extensions
Effettuare il binding di date in Blazor
I più letti di oggi
- Utilizzare il trigger SQL con le Azure Function
- Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
- Definire stili a livello di libreria in Angular
- .NET Conference Italia 2023 - Milano e Online
- Come EF 8 ha ottimizzato le query che usano il metodo Contains
- Ottimizzazione dei block template in Angular 17