J'ai un service web qui exécute une tâche qui peut prendre des heures pour se terminer (de manière asynchrone).
Je voudrais partager le statut de cette tâche avec tous les clients qui se connectent au serveur (j'utilise une application web pour cela).
Par exemple, le premier client qui appelle la page http://localhost/process.aspx instancie le service web et appelle une méthode pour commencer à exécuter la tâche. Un pourcentage sera affiché pour indiquer l'état d'avancement de la tâche. Je peux faire cela en interrogeant le service web en utilisant AJAX.
Si un autre client tente d'ouvrir cette page, il devrait obtenir les mêmes informations de pourcentage afin qu'aucune nouvelle instance du service web ne soit créée.
Quelle est la meilleure façon de procéder ? J'ai réfléchi à différentes solutions, mais tôt ou tard, je découvre de nouveaux problèmes. Voici quelques-unes des solutions possibles :
- Créer un objet statique du service Web.
- Créer l'objet dans le fichier global.asax.
Vous avez d'autres idées ? Je n'ai pas l'habitude de concevoir des sites web et cela me rend fou. J'apprécierais si vous pouviez me fournir des extraits de code.
Merci