Quelle est la meilleure implémentation pour plusieurs services d'arrière-plan dans une application ASP.NET?Meilleure implémentation du service d'arrière-plan ASP.NET
minuterie Callback
Timer timer = new Timer(new TimerCallback(MyWorkCallback), HttpContext, 5000, 5000);
fil ou ThreadPool
Thread thread = new Thread(Work); thread.IsBackground = true; thread.Start();
BackgroundWorker
BackgroundWorker worker = new BackgroundWorker(); worker.DoWork += new DoWorkEventHandler(DoMyWork); worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(DoMyWork_Completed); worker.RunWorkerAsync();
commeCaching(situé dans Jeff Atwood post here)
je dois exécuter plusieurs arrière-plan "services" à un moment donné. Un service peut être exécuté toutes les 5 minutes où un autre peut être une fois par jour. Il ne sera jamais plus de 10 services en cours d'exécution à la fois.
Service à la place également, mais si vous n'êtes pas sûr si l'utilisateur final a cette capacité par exemple dans un environnement d'hébergement partagé, je veux toujours être sûr que je peux toujours héberger ces "services". –
J'ai modifié ma balise Simple Thread pour ThreadPool. J'ai également trouvé une quatrième option - http://www.codeproject.com/KB/aspnet/ASPNETService.aspx. Merci encore pour votre réponse! –
Concernant cette option; Il a été porté à mon attention que cela ne fonctionnera que si quelqu'un frappe le site. Si personne ne visite, il ne peut pas supprimer l'élément du cache et exécuter la tâche. Je vérifierais par moi-même (je n'ai pas) avant de l'utiliser. Certainement Windows Services est le plus stable, s'il existe en option. –