Je dois démarrer un thread pour effectuer une tâche longue en arrière-plan (même si le navigateur est fermé) sans attendre de réponse sur un événement de clic de bouton d'une page Web.démarrer et arrêter des threads à partir d'ASP.NET
Je dois également pouvoir arrêter cela plus tard si l'utilisateur le souhaite.
Comment est-ce que je peux faire ceci?
Est-il possible de stocker le id
du thread dans la base de données et l'annuler plus tard?
Ai-je besoin d'effectuer un appel asynchrone webservice
OU wcf
pour y parvenir? Comment puis-je arrêter la tâche longue plus tard si nécessaire dans ce cas?
Merci d'avance.
c'est ce que j'ai presque décidé, en raison de divers problèmes impliqués (comme les équilibreurs de charge, etc.) dans la gestion des tâches de longue durée sur le serveur web. Le service Windows peut démarrer plusieurs threads pour effectuer les tâches en parallèle. le seul problème avec le service Windows est qu'il doit continuer à interroger la base de données toutes les secondes ou quelques minutes pour vérifier les nouvelles demandes, ce qui n'est pas efficace en dehors des heures de pointe, il vaudra mieux que ce soit un événement, comme un événement est publié lorsque l'utilisateur fait une demande et qu'un service s'y abonne et agit UNIQUEMENT lorsqu'il y a une nouvelle demande. Ai-je besoin d'utiliser MSMQ pour cela? – RKP
Vous pouvez essayer MSMQEvent et voir si cela fonctionne pour vous. L'interrogation ne devrait pas mettre beaucoup de charge sur le serveur à moins que vous ne le marteliez constamment. Vous pouvez reculer sur l'intervalle pendant les heures creuses si c'est un gros problème. Mais le but des machines est de faire des choses, donc si ça ne fait rien d'autre, qu'est-ce qui ne va pas avec un sondage? –
merci pour la réponse – RKP