2013-11-09 1 views
1

I думаю что мне нужно для нескольких проектов, которые управляют событиями. Это привело меня к Twisted (Python) и Node.js (Javascript).Как Twisted может взаимодействовать с программами командной строки? Может ли Node.js?

Единственное, что мне нужно - это взаимодействие с программами командной строки, которые не спешат заканчивать и печатать материал сейчас и после этого до стандартного вывода.

Я не нашел хорошего учебника для Twisted, и я не нашел ничего о том, как получить Twisted с не связанным с сетью программированием.

Вопросы:

Есть ли учебник, который охватывает несетевых материал с Twisted?

Должен ли я лучше взглянуть на Node.js? Если да, то почему?

Существуют ли альтернативы программированию, основанному на событиях, которое лучше абстрагирует проблему? (Я знаю, есть много, которые абстрагируют его хуже, пожалуйста, не упоминайте их. :-)

ответ

0

Если вам не нужно реагировать на события сокетов или какие-либо события gui, вам действительно не нужно скручивать. Если вы ожидаете, что пользователь будет вводить данные, тогда будут работать стандартные командные оболочки или реплики. Эти приложения являются чисто синхронными.

Конечно, если вы говорите о запуске подпроцесса от демона (или иначе уже работают витым приложение), https://twistedmatrix.com/documents/current/core/howto/process.html

+0

Мне нужно взаимодействовать с десятками программ командной строки сразу. - Это не демон, я не жду ввода пользователя и не синхронно. - Ссылка хорошая. :-) –

+0

Отредактировано для пояснения, что ссылка применяется не только к демонам, но и к любому скрученному приложению. Закрученные приложения, как правило, являются демонами, и поэтому я предполагаю, что это используется в случае использования скручивания, но ни в коем случае это не только для демонов, или что не-демоны трудно перекрутить. – Tritium21

+0

Кто-то даже отклонил ваш ответ? (Я дал +1.) - Но я все же считаю, что все ответы - это дерьмо, кроме ссылки. Зачем? Существует много сценариев, где Twisted имеет смысл. Не только сокет, графический интерфейс и демоны, поэтому зачем настаивать на том, что _I_ не нужен Twisted? –

0

Если вы хотите, чтобы ваше Twisted приложение для взаимодействия с программами командной строки, называя их и захватив их выход, вы можете сделать это с помощью spawnProcess, как описано в ссылке Tritium21. Он работает асинхронно, поэтому ваше приложение Twisted будет продолжать обработку и может запускать другие программы тем временем.

Если вы хотите запустить программу из командной строки, которая будет иметь какое-то влияние на приложение Twisted, вы можете получить Twisted listen on a socket и подключить к нему программы для отправки команд. Опять же, Twisted может разговаривать со многими программами сразу, если вы будете писать код обработки асинхронно. Один действительно хороший способ поговорить с сервером - с AMP, Asynchronous Messaging Protocol.

И, конечно же, одно и то же приложение может делать обе эти вещи одновременно и многое другое.

+0

Первое, что я хочу сделать. –

 Смежные вопросы

  • Нет связанных вопросов^_^