2009-09-22 7 views
0

J'ai une application (A) qui communique avec une autre application (B) que je n'ai pas écrite, c'est une API à laquelle je suis abonné. Lorsque B descend A est notifié gentiment de cette perte d'application et toutes les informations contre elle sont perdues (puisque le processus n'existe plus).Meilleure façon de surveiller un processus pour démarrer

J'ai écrit un simple threading.timer pour essentiellement interroger quand cette application reviendra à la vie pour ensuite se réinitialiser (A réinitialise à B).

Tout cela fonctionne bien et dandy, je me demande s'il y a une meilleure façon de le faire.

Merci.

+0

En communiquant ces applications? TCP/IP, COM, messages Windows. – RRUZ

Répondre

1

Une chose que nous avons faite est d'utiliser la messagerie UDP du service que vous voulez surveiller. Je ne suis pas sûr si vous avez la possibilité d'étendre le service B ou non, mais si vous le faites, le service B peut envoyer les paquets d'état UDP et A peut s'enregistrer pour recevoir ces paquets UDP. Vous pouvez déterminer si un service est arrêté si vous ne recevez pas les paquets UDP après une certaine période. C'est plutôt un modèle poussé où ce que vous décrivez est plutôt un modèle d'interrogation.

Questions connexes