Quando si approccia a Windows Azure, soprattutto utilizzando i template per Visual Studio, si tende a sviluppare web e worker role separatamente, come suggerito quando si creano nuovi progetti. Sebbene sia utile per separare logicamente i componenti e per essere pronti per scalare in modo migliore, una soluzione con due ruoli, comporta almeno due istanze, e questo può essere d'ostacolo a progetti piccoli con disponibilità economiche limitate.
In realtà un web role, così come il worker role, dispone di un RoleEntryPoint, nel quale, oltre al metodo OnStart, possiamo sovrascrivere il metodo Run, così come faremmo nel worker role. Normalmente tale metodo non esce fino a quando OnStop, sempre del ruolo, non viene chiamato. Possiamo sovrascrivere questo metodo per eseguire attività di schedulazione, o dei loop infiniti, come nell'esempio seguente.
public class WebRole : RoleEntryPoint { private bool cancel; public override void Run() { // Continuo fino a quando OnStop non viene chiamato while (!cancel) { // TODO: faccio qualcosa // Aspetto un minuto Thread.Sleep(TimeSpan.FromMinutes(1)); } } public override void OnStop() { base.OnStop(); cancel = true; } }
In questo modo, oltre ai siti web, possiamo anche eseguire attività tipiche dei servizi, il tutto in un'unica istanza.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Eseguire una ricerca avanzata per recuperare le issue di GitHub
Ricevere notifiche sui test con Azure Load Testing
Generare velocemente pagine CRUD in Blazor con QuickGrid
Anonimizzare i dati sensibili nei log di Azure Front Door
Introduzione alle Container Queries
Configurare il nome della run di un workflow di GitHub in base al contesto di esecuzione
Utilizzare Copilot con Azure Cosmos DB
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
Gestione degli stili CSS con le regole @layer
Creare agenti facilmente con Azure AI Agent Service
Aggiornare a .NET 9 su Azure App Service