Question

J'ai une application qui scanne un répertoire d'entrée tous les cinq secondes et quand un emploi (c.-à-fichier) est placé dans le répertoire de l'application lit, traite et envoie un autre fichier (s) dans un répertoire de sortie.

Ma question est, si je voulais mettre un terme avant sur le Web sur cette application, comment pourrais-je attendre que le traitement soit complète?

  • L'utilisateur soumet l'emploi
  • travail est placé dans le répertoire d'entrée
  • ...... Qu'est-ce que je fais sur la page web ici?
  • traitement se produit
  • fichier de sortie est généré
  • ...... Comment puis-je savoir que le travail est terminé?

Les deux solutions que je suis venu avec sont:

  • répertoire de sortie de sondage toutes les x secondes de la page Web
  • utiliser ajax pour interroger un webservice ou une page Web qui vous indique si le fichier de sortie est présent

Y at-il une meilleure conception pour le serveur? En d'autres termes, comment TCP ou Named Pipes aider dans cette situation? (Ne peut pas utiliser Remoting en raison d'un objet DCOM.)

Était-ce utile?

La solution

Une solution que nous avons fait du commerce dans le passé est essentiellement le démon écrit dans un journal (généralement DB), avec un timbre date / heure, à ce que son fait, et le frontend Web montre que la dernière quantité X d'entrées de le journal, avec un peu de bascule pour masquer tous les « Regarda dans le répertoire, aucun fichier trouvé » messages, a travaillé assez bien, nous avons amélioré plus tard avec AJAX (Timer qui rechargées toutes les 20 secondes).

Autres conseils

Je ne pense pas que les canaux nommés vont le rendre plus facile d'obtenir le client Web pour Interroger automatiquement, mais il pourrait améliorer le serveur en mesure de notifier un autre processus que la conversion est terminée - et, finalement, la file d'attente d'un message au navigateur Web.

Vous pouvez essayer d'avoir le sondage client Web toutes les quelques secondes pour voir si le processus de fichier a terminé, vous pourriez avoir encore quelque chose comme Juggernaut commandes « push » vers la page. Juggernaut fonctionne à l'aide de Flash pour ouvrir une socket sur le navigateur Web qui alimente en permanence JavaScript à partir du serveur. Il pourrait être responsable de l'envoi d'une commande pour alerter le navigateur que le fichier a terminé et émettre une redirection.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top