1

认为我需要的几个项目是事件驱动编程。这让我想到了 Twisted (Python) 和 Node.js (Javascript)。

我需要的一件事是与命令行程序的交互,这些程序需要时间来完成并将内容打印到标准输出。

我没有找到关于 Twisted 的好的教程,也没有找到关于如何通过非网络相关的编程获得 Twisted。

问题:

是否有使用 Twisted 涵盖非网络内容的教程?

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

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

4

2 回答 2

0

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

如果你想运行一个对 Twisted 应用程序有一些影响的命令行程序,你可以让 Twisted监听一个套接字并让程序连接到它来发送命令。同样,只要您异步编写处理代码,Twisted 就可以同时与许多程序对话。与服务器通信的一种非常好的方式是使用 AMP,即异步消息传递协议

当然,同一个应用程序可以同时完成这两件事,甚至更多。

于 2013-11-22T12:06:45.620 回答
0

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

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

于 2013-11-09T16:28:31.567 回答