2009-04-23 11 views
0

Problème:Communiquer avec un service Python

J'ai un script python que j'ai en cours d'exécution en tant que service. C'est une sous-classe de la classe Win32 win32serviceutil.ServiceFramework. Je veux un moyen simple et direct d'envoyer des commandes arbitraires via la ligne de commande.

Ce que j'ai regardé:

Il ressemble à la manière standard de contrôle du service une fois qu'il a commencé est en utilisant un autre programme et l'envoyer des signaux de commande, mais je dois être en mesure d'envoyer un chaîne courte à elle ainsi qu'un argument. Il semble que l'utilisation d'un NamedPipe soit une bonne idée, mais c'est vraiment trop complexe pour ce que je voulais faire, y a-t-il un autre moyen plus simple?

Répondre

2

Pas vraiment.

Vous avez plusieurs façons de faire de la "communication interprocessus" (IPC) en Python.

Une solution courante consiste à utiliser le protocole HTTP et définir des commandes "REST". Votre service écoute sur le port 80 pour les demandes HTTP contenant des arguments et des paramètres. Regardez wsgiref pour plus d'informations à ce sujet.

+0

. C'est en quelque sorte ce que ma recherche a proposé. Je pense que je vais finir par aller avec NamedPipes. – Robbie

+0

Nous utilisons WSGI car - globalement - c'est très, très simple à implémenter avec la bibliothèque wsgiref. Nos clients utilisent urllib2 pour faire des demandes. –

Questions connexes