2012-01-06 83 views
2

有一个非常类似的问题在这里:What's the difference between a twistd plugin and a twistd service?插件和应用程序插件在扭曲的区别?

答案是:

插件是在更好的,你可以有命令行选项

当我开始学习扭曲我正在使用现有的应用程序,并且我很困惑,入口点位于twisted/plugins文件夹的某处。

从那时起,我的首选方法是在顶部文件夹中使用tac文件,但现在我需要将某些命令行参数传递给我的脚本。我被告知使用扭曲的应用程序插件。

我被扭曲的术语plugin弄糊涂了。对我而言,这意味着某些东西会以无缝方式更改应用程序 - 您不必知道它们存在 - 它们只是“插入”应用程序以改变其行为。

但我不明白扭曲的应用程序和扭曲的应用程序插件之间的概念区别。对我来说 - 他们服务于同一目的,但有不同的特点 - 为什么?

什么时候应该使用扭曲的应用程序和插件?

回答

1

插入扭曲仅向twistd脚本添加命令和/或选项。他们没有任何意义。

好吧,有两种方法可以为您的应用程序编写启动脚本,一种是使用.tac文件,另一种是向twistd添加命令(通过插件)。

我觉得.tac文件比较容易编写。

我认为使用两个插件和.tac文件都不是错误的。

还有第三种方法:编写自己的启动脚本而不是twistd

但我不明白扭曲的 应用程序和扭曲的应用程序插件之间的概念区别。对我来说 - 他们服务于 相同的目的,但有不同的特点 - 为什么?

那么没有。他们没有达到相同的目的。扭曲的应用程序只是一个.tac文件,可以用twistd脚本启动。它更像是一个配置文件。用python语法配置文件。目的是您不需要编写自己的启动脚本。但是,如果twistd未能为您提供足够的选项,则可以为其编写一个插件。所以插件的目的是扩展twistd

如果我不得不发布独立应用程序,我会编写自己的启动脚本,并且不会使用twistd脚本。 twistd是可以的,如果应用程序的用户熟悉扭曲和或有更多扭曲的应用程序。我认为用户只能看到twistd的所有不同选项,并且如果不参考文档就无法启动应用程序是非常令人沮丧的。

例如scrapy这样做:它为不熟悉扭曲的用户提供脚本scrapyd

+2

>如果我不得不发布一个独立的应用程序,我会写我自己的启动脚本,不会使用twistd脚本。 >例如scrapy就是这样做的:它为不熟悉扭曲的用户提供了一个脚本scrapyd。 warvariuc 2012-01-09 09:17:07