这里有一个非常相似的问题:What's the difference between a twistd plugin and a twistd service?
答案是:
插件更好,因为你可以拥有命令行选项
当我开始学习twisted时,我正在使用现有的应用程序,而且我很困惑,它位于twisted/plugins
文件夹中的某个入口点。
从那时起,我首选的方法是在顶层文件夹中使用tac
文件,但现在我需要将一些命令行参数传递给我的脚本。我被告知使用扭曲的应用程序插件。
我对扭曲的plugin
一词感到困惑。对我来说,它意味着以无缝方式改变应用程序的某些东西 - 你不必知道它们存在 - 它们只是“插入”你的应用程序改变它的行为。
但我无法理解扭曲的应用程序和扭曲的应用程序插件之间的概念差异。对我来说 - 他们服务于同样的目的,但却有不同的功能 - 为什么?
什么时候应该使用扭曲的应用程序和插件?
答案 0 :(得分:1)
加入的插件只会向twistd
脚本添加命令和/或选项。他们没有任何意义。
好的是,有两种方法可以为您的应用程序编写启动脚本,一种是使用.tac
文件,另一种是将命令(通过插件)添加到twistd
。
我认为.tac
文件更容易编写。
我认为同时使用它们并不是错误的:插件和.tac
文件。
还有第三种方法:编写自己的启动脚本而不是twistd
。
但我无法理解扭曲之间的概念差异 应用程序和扭曲的应用程序插件对我来说 - 他们服务于 同样的目的,但有不同的功能 - 为什么?
没有。他们没有同样的目的。 Twisted应用程序只是一个.tac
文件,可以使用twistd
脚本启动。它更像是一个配置文件。使用python语法配置文件。它的目的是您不需要编写自己的启动脚本。但如果twistd
没有为您提供足够的选项,您可以为它编写插件。所以插件的目的是扩展twistd
。
如果我必须发布一个独立的应用程序,我会编写自己的启动脚本,不会使用twistd
脚本。如果应用程序的用户熟悉扭曲的应用程序或者有更多扭曲的应用程序,那么twistd
就可以了。我认为查看twistd
的所有不同选项对用户来说只是一种负担,如果不参考文档就无法启动应用程序,这是非常令人沮丧的。
例如scrapy执行此操作:它为不熟悉twisted的用户提供了脚本scrapyd
。