Dupliquer
Ceci est une copie proche de Dealing with a longer running process in WCF. S'il vous plaît envisager d'afficher votre réponse à celui-là au lieu de cela.Processus de threads à exécution longue sous ASP.NET + WCF
Original Question
Je la mise en œuvre de la couche métier d'une application qui doit exécuter des processus d'arrière-plan à des moments programmés. La couche de gestion est composée de plusieurs services WCF s'exécutant tous sous la même application Web.
L'idée est de définir un ensemble de «tâches» qui doivent être exécutées à des moments différents (par exemple, toutes les 5 minutes, tous les jours à 23h00, etc.). Cela ne serait pas difficile à mettre en œuvre en tant que service Windows, mais le problème est que les tâches doivent accéder aux caches de données qui résident dans les services. Ce 'planificateur' doit donc s'exécuter dans le contexte IIS pour accéder à ces données. Ce que je fais actuellement utilise une ServiceHostFactory personnalisée dans l'un des services WCF qui génère un thread fils et renvoie. Le thread enfant dort et se réveille toutes les X minutes pour voir s'il y a des tâches planifiées et les exécute. Mais je crains que IIS tue aléatoirement mon thread lorsqu'il recycle le pool d'applications ou après un certain temps d'inactivité (par exemple, aucune activité sur les services WCF qui écoutent les requêtes de la couche de présentation). Le thread doit s'exécuter sans interruption, quelle que soit l'activité sur les services. Est-ce vraiment possible?
J'ai trouvé an article by someone doing the same thing, mais sa solution semble être ping sur le serveur à partir du thread fils lui-même régulièrement. J'espère qu'il y a une meilleure solution.
Ceci est une copie très proche de http://stackoverflow.com/questions/1142698/dealing-with-a-longer-running-process-in-wcf. S'il vous plaît jeter un coup d'oeil et voir si vous êtes d'accord avec moi. –