No, this is not "easy" out of the box. What you are talking about is "fire and forget." Even if you use a thread pool to process the request, this thread pool will belong to the main python process owned by Tornado.
The best approach is a message queue. Something like Carrots. Thus, suppose you have a page on which users can start creating a HUGE report, you can run it in the message queue, and then complete the Tornado request and with some AJAX magicians and other tricks (outside of Tornado) you can respond and wait until the message queue completes this task (which might happen technically on a distributed server in another physical location).
Peter Bengtsson
source share