[Twisted-web] some questions about twisted.web
glyph at divmod.com
glyph at divmod.com
Tue Apr 7 22:04:27 EDT 2009
On 7 Apr, 07:47 pm, jack at chesspark.com wrote:
>>You can pass arbitrary command line options by writing a plugin.
>>=A0http://twistedmatrix.com/projects/core/documentation/howto/tap.html
>
>Which, as I recall, Glyph and others have discourged others from doing
>this. Perhaps I am mistaken, but if twistd is intended for this
>purpose, why has this not become part of it all along?
Chris has already basically set the record straight here, but for future =
readers I just wanted to have a direct reply to this message and clear =
up a very unfortunate choice of acronyms. Some of this is a summary of =
other things that have already been mentioned in this thread.
I definitely do not discourage the use of twistd for this purpose :). =
In fact I strongly recommend it. Here's the history.
".tap" ("Twisted Application Pickle") files, and the associated "mktap" =
("make twisted application pickle") command-line utility, are strongly =
discouraged. They've been deprecated for a long time, and they'll be =
gone soon.
"TAPs" ("Twisted Application *Plugins*") were originally plugins for =
"mktap". That's why the naming is similar. However, *they are now =
plugins for twistd*, and have been for some time. Developers are =
strongly encouraged to use this interface, and to read the document =
linked above.
Before "TAPs" were plugins for twistd, the suggested configuration =
mechanism for twisted applications was to write a '.tac' file and tell =
your users to edit it. Processing twistd's commandline arguments at =
this point was impossible without gratuitous hacks, so tac files were a =
better alternative. However, as Jack noted, editing tac files is =
inconvenient, so we added the twistd plugin interface. We now recommend =
that adding command-line arguments to your 'twistd' plugin is the way to =
go if you want run-time configuration for your twisted server =
application.
The technique that Chris suggested elsewhere in this thread, to set up =
correct command-line arguments for your plugin and then call twistd's =
run() function, is the currently supported way to invoke twistd's =
functionality from your own scripts. This is what we use to support =
Divmod's "axiomatic" command, which is basically a database-configured =
version of "twistd". A more expressive API for a wider variety of use- =
cases is forthcoming, but this technique should still work even once =
such an API has been added.
The document in question would really benefit from some updating; in =
particular, it would be good to move the mention of TAP files to some =
kind of endnote rather than being mentioned before the actual relevant =
features.
More information about the Twisted-web
mailing list