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