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
Change tracking e composition in Entity Framework
Potenziare la ricerca su Cosmos DB con Full Text Search
Autenticazione di git tramite Microsoft Entra ID in Azure DevOps
Eseguire query in contemporanea con EF
Configurare lo startup di applicazioni server e client con .NET Aspire
Utilizzare Locust con Azure Load Testing
Eliminare record doppi in Sql Server
Migliorare l'organizzazione delle risorse con Azure Policy
Supportare la sessione affinity di Azure App Service con Application Gateway
Ricevere notifiche sui test con Azure Load Testing
Disabilitare le run concorrenti di una pipeline di Azure DevOps
Rendere le variabili read-only in una pipeline di Azure DevOps
I più letti di oggi
- Microsoft Security Bulletin MS04-004
- Nuovo managed provider ADO.NET per MySQL
- Parte il test del SP2 di Windows Server 2003
- Dependency injection in ASP.NET MVC 5 con Ninject
- Impostare la culture per la client side validation di ASP.NET MVC 5
- API di #Cassandra supportate direttamente da #CosmosDB, che si aggiunge alle API per #MongoDB, #DocumentDB, Table Storage, Spark e Gremlin Graph #Azure #MSFTConnect
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Utilizzare politiche di resiliency con Azure Container App
- Caricamento differito di assembly o di porzioni di progetto in Silverlight 2.0