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
Utilizzare Azure AI Studio per testare i modelli AI
Generare la software bill of material (SBOM) in GitHub
Utilizzare un service principal per accedere a Azure Container Registry
Hosting di componenti WebAssembly in un'applicazione Blazor static
Utilizzare il nuovo modello GPT-4o con Azure OpenAI
Path addizionali per gli asset in ASP.NET Core MVC
Migliorare la sicurezza dei prompt con Azure AI Studio
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
Aggiornare a .NET 9 su Azure App Service
Creare una libreria CSS universale: Nav menu
Ottimizzare le pull con Artifact Cache di Azure Container Registry
Sostituire la GitHub Action di login su private registry