基础

应用程序

Twisted 程序通常使用 twisted.application.service.Application()。此类通常保存运行服务器的所有持久配置,例如

  • 要绑定的端口,

  • 必须保持或尝试连接的位置,

  • 要执行的周期性操作,

  • 以及与您的 Application 相关的几乎所有其他内容。

它是实现 twisted.application.service.IService 的服务树的根对象。

其他操作指南描述了如何为 Application 编写自定义代码,但本指南描述了如何使用已编写的代码(可以是 Twisted 的一部分或来自第三方 Twisted 插件开发人员)。Twisted 发行版附带一个重要的工具来处理 Applicationtwistd(1)

Application 只是 Python 对象,可以像其他任何对象一样创建和操作。

twistd

Twisted Daemon 是一个程序,它知道如何运行 Application。严格来说,twistd 不是必需的。获取应用程序,获取 IService 组件,调用 startService(),在 reactor 关闭时安排 stopService(),然后调用 reactor.run() 可以手动完成。

但是,twistd 提供了许多选项,这些选项对于程序设置非常有用

  • 选择 reactor(有关 reactor 的更多信息,请参阅 选择 Reactor),

  • 日志记录配置(有关更多信息,请参阅 logger 文档),

  • 守护进程(分叉到后台),

  • 以及 更多

twistd 支持上面提到的所有应用程序,以及一个额外的应用程序。有时,直接在 Python 中编写用于构建类的代码很方便。此类 Python 文件的一个主要来源是 examples 目录。当使用定义名为 applicationApplication 对象的纯 Python 文件时,请使用 -y 选项。

twistd 运行时,它会在 twistd.pid 文件中记录其进程 ID(这可以通过命令行开关配置)。为了关闭 twistd 进程,请杀死该 PID。通常的做法是

kill `cat twistd.pid`

要阻止 twistd 成为守护进程,您可以传递 --no-daemon 选项(或 -n,与其他简短选项一起使用)。

与往常一样,详细内容请参阅手册页。