Si tu fais ASP.NET, tu utiliseras clairement IIS
Si vous souhaitez ajouter une tâche planifiée à votre application ASP.net, vous devez utiliser un fil de discussion pour effectuer les calculs planifiés sans interruption
Supposons alors que nous ajoutons Quartz.NET framework à notre application ASP.Net, et que la configuration et ainsi de suite soient correctes.
Ce site a très peu de visites, et maintenant seules quelques personnes l’utilisent au travail, mais le lendemain, je suis venu voir que les fils de discussion et les tâches de calcul de la planification en arrière-plan avaient été arrêtés, et si vous récupérez Application_End événement, vous verrez que cet événement a en fait été appelé.
Il doit donc y avoir un problème avec le mécanisme de recyclage des pools d’applications d’IIS. Parce que le réglage par défaut d’IIS est que si le pool d’applications d’un site n’est pas consulté ou demandé pendant un certain temps, IIS récupère automatiquement le pool de programmes et coupe le processus. Les fils de ce processus ne survivront certainement pas.
Cependant, nous pouvons définir les paramètres du pool d’applications pour qu’ils ne soient pas simplement automatiquement recyclés (certaines situations sont inévitables, comme des sites déploiés à chaud, un nombre excessif d’erreurs, etc.)
Trouvez le pool de programmes utilisé par ce site dans IIS et cliquez sur « Paramètres avancés... »
Modifiez les paramètres suivants dans la liste qui s’ouvre :
Récupération - Intervalle de temps fixe (minutes) changé à 0
- Limite de mémoire virtuelle/dédiée (KB) changée à 0
Modèle de processus - Délai d’attente (minutes) d’inactivité est changé à 0
Ainsi, le pool de programmes ne sera pas automatiquement recyclé, et certains threads de calcul simples en arrière-plan fonctionneront normalement |