Twisted如何与命令行程序交互? Node.js可以吗?

时间:2013-11-09 16:23:14

标签: python node.js twisted event-driven

认为我需要的几个项目是事件驱动的编程。这导致我使用Twisted(Python)和Node.js(Javascript)。

我需要的一件事是与命令行程序的交互,这些程序花费时间来完成并立即打印东西到标准输出。

我找不到Twisted的好教程,但我没有发现如何使用非网络相关编程来实现Twisted。

问题:

是否有一个教程涵盖了Twisted的非网络内容?

我应该更好地了解Node.js吗?如果是这样,为什么?

是否有其他事件驱动编程可以更好地抽象问题? (我知道,有很多摘要更糟糕;请不要提及它们。: - )

2 个答案:

答案 0 :(得分:0)

除非您需要对套接字事件或某种类型的gui事件作出反应,否则您真的不需要扭曲。如果您正在等待用户输入数据,那么标准命令shell或repl设计将起作用。这些应用程序纯粹是同步的。

当然,如果您正在讨论从守护程序(或其他已经运行的扭曲应用程序)运行子进程,https://twistedmatrix.com/documents/current/core/howto/process.html

答案 1 :(得分:0)

如果您希望Twisted应用程序通过调用它们并捕获其输出来与命令行程序交互,则可以使用Tritium21链接中所述的spawnProcess来执行此操作。它以异步方式运行,因此您的Twisted应用程序将继续处理,同时可以运行其他程序。

如果您想运行一个对Twisted应用程序产生一些影响的命令行程序,您可以使用Twisted listen on a socket并让程序连接到它以发送命令。同样,如果您异步编写处理代码,Twisted可以立即与许多程序通信。与服务器通信的一个非常好的方法是使用AMP Asynchronous Messaging Protocol

当然,同一个应用程序可以同时执行这两个操作,还有更多。