Общение с сервисом Python - PullRequest
       17

Общение с сервисом Python

0 голосов
/ 23 апреля 2009

Проблема:

У меня есть скрипт на Python, который я запускаю как сервис. Это подкласс класса win32 win32serviceutil.ServiceFramework. Я хочу простой и простой способ посылать ему произвольные команды через командную строку.

Что я смотрел:

Похоже, что стандартный способ управления сервисом после его запуска - использование другой программы и отправка ей командных сигналов, но мне нужно иметь возможность отправить ей короткую строку и аргумент. Похоже, что использование NamedPipe может быть хорошей идеей, но это действительно слишком сложно для того, что я хотел сделать, есть ли какой-нибудь другой более простой способ?

1 Ответ

2 голосов
/ 23 апреля 2009

Не совсем.

У вас есть много-много способов сделать «межпроцессное взаимодействие» (IPC) в Python.

  • Гнезда

  • Именованные каналы (см. http://developers.sun.com/solaris/articles/named_pipes.html) - для создания требуется немного магии ОС, но тогда это просто файл, который вы читаете и пишете.

  • Общая память (см. http://en.wikipedia.org/wiki/Shared_memory) - это также включает в себя значительное количество магии на уровне ОС.

  • Семфоры и Замки; файлы с блокировками могут хорошо работать для IPC.

  • Протоколы более высокого уровня, построенные на сокетах ...

    • HTTP; вот что такое WSGI.

    • FTP

    • и т.д.

Распространенным решением является использование HTTP и определение команд "RESTful". Ваша служба прослушивает порт 80 для запросов HTTP, которые содержат аргументы и параметры. Посмотрите на wsgiref для получения дополнительной информации об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...