2013-11-09 2 views
1

I 생각해 보면 프로젝트를 위해 필요한 것은 이벤트 중심 프로그래밍입니다. 이로 인해 Twisted (Python) 및 Node.js (Javascript)가되었습니다.Twisted는 명령 행 프로그램과 어떻게 상호 작용할 수 있습니까? Node.js를 사용할 수 있습니까?

필요한 것은 커맨드 라인 프로그램과의 상호 작용입니다. 커맨드 라인 프로그램과의 상호 작용으로 작업을 마친 후 표준 출력으로 마무리합니다.

나는 Twisted에 대한 좋은 튜토리얼을 찾지 못했고, 네트워크가 아닌 프로그래밍으로 Twisted를 얻는 방법에 대해서는 발견하지 못했습니다.

질문 :

트위스트와 비 네트워크 물건을 커버하는 자습서가 있습니까?

Node.js를 더 자세히 살펴볼 필요가 있습니까? 그렇다면 왜?

문제를 더 잘 추상화하는 이벤트 중심 프로그래밍의 대안이 있습니까? (나는 그것을 추상화하는 많은 것들이있다 ;-) 그들을 언급하지 말아라. :

답변

0

어떤 종류의 소켓 이벤트 나 GUI 이벤트에 반응해야 할 필요가 없다면 실제로 왜곡 할 필요가 없다. 사용자가 데이터를 입력하기를 기다리는 경우 표준 명령 셸 또는 repl 디자인이 작동합니다. 이러한 응용 프로그램은 완전히 동기식입니다. 물론

, 당신이 데몬에서 하위 프로세스를 실행 (또는 그렇지 않으면 이미 실행 트위스트 응용 프로그램)에 대해 이야기하는 경우, https://twistedmatrix.com/documents/current/core/howto/process.html

+0

한 번에 수십 개의 명령 줄 프로그램과 상호 작용해야합니다. - 데몬이 아니므로 사용자 입력을 기다리지 않고 동기식이 아닙니다. - 링크는 좋지만. :-) –

+0

링크가 데몬뿐만 아니라 꼬인 응용 프로그램에도 적용된다는 점을 명확히하기 위해 편집되었습니다. 트위스트 된 응용 프로그램은 일반적으로 데몬이며, 따라서 꼬인 경우 유스 케이스라고 가정합니다. 그러나 데몬 만있는 것은 아니며 비 데몬은 뒤틀린 것이 어렵습니다. – Tritium21

+0

누군가 당신의 답을 downvoted도 ?? (나는 +1을 주었다.) 그러나 나는 여전히 전체 답변이 링크를 제외하고는 쓰레기라고 생각한다. 왜? Twisted가 의미있는 많은 시나리오가 있습니다. 소켓, GUI 및 데몬뿐만 아니라, 왜 내가 왜곡 된 것을 필요로하지 않는다고 주장 하는가? –

0

당신이 원하는 경우를 호출하여 명령 줄 프로그램과 상호 작용할 트위스트 응용 프로그램과 출력을 캡쳐하면, Tritium21의 링크에서 설명한대로 spawnProcess으로 처리 할 수 ​​있습니다. 비동기 적으로 실행되므로 Twisted 앱은 처리를 계속 수행하고 그 동안 다른 프로그램을 실행할 수 있습니다.

Twisted 앱에 영향을 줄 수있는 명령 줄 프로그램을 실행하려면 Twisted listen on a socket을 사용하고 명령을 보내기 위해 프로그램을 연결해야합니다. Twisted는 처리 코드를 비동기 적으로 작성하면 많은 프로그램과 즉시 대화 할 수 있습니다. 서버와 대화하는 가장 좋은 방법은 AMP 인 Asynchronous Messaging Protocol입니다.

물론 동일한 앱을 통해 한 번에 두 가지 작업을 모두 수행 할 수 있습니다.

+0

나는 이전에하고 싶다. –

관련 문제