3 ms·
can not understate just how well written Tornado is. If you are a web app developer, it is well worth reading the source of the project - you will pick up a lot
by nikcub 15y ago
can not understate just how well written Tornado is. If you are a web app developer, it is well worth reading the source of the project - you will pick up a lot of tips and tricks on developing quick and scalable apps.
outside of the event loop implementation, the framework components are well written - so tornado is worth checking out even if you are running on a more standard type of web server environment or appengine
my own web app stack contains a number of modules either directly from Tornado or inspired by sections of the project
- IgorPartola 15y agoI found some parts of it to be very poorly written. Like the error handling where it assumes you want to return HTML (remember that Tornado was first written to handle RSS feeds). It also has really poor support for multiprocess mode, where if a child gets killed , the parent does not restart it. Or if the parent is killed, the children may continue running. Also the gzip implementation is broken: if the client mentions gzip even as q=0, Tornado will use it. Just feels like the devs did not not quite pay attention to the details as much as the event loop.
- jrussbowman 15y agoThere's never been a real focus on multiprocess. The recommended solution is to run individual instances and load balance them with something like nginx and manage them with supervisord. Sure the multiprocess stuff is in there, but I honestly wouldn't use it for more than perhaps a dev environment where you want to spool up multiple instances quickly for testing.
- BarkMore 15y agoLike the error handling where it assumes you want to return HTML (remember that Tornado was first written to handle RSS feeds). You can override the error handler and return whatever content type you want. Tornado was first written for an HTML site, not RSS feeds. FriendFeed supported an HTML UI before Atom and RSS feeds were added. really poor support for multiprocess mode The Tornado people do not recommend using multiprocess mode. They should just delete this code.
- nikcub 15y agoI took the werkzeug exception handlers and wrote a small wrapper around it that would ensure the correct output type based on content never noticed the gzip issue, since I didn't use that either overall I think the code is very good, well written and well documented