[ 
https://issues.apache.org/jira/browse/THRIFT-1704?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13581798#comment-13581798
 ] 

Chris Piro commented on THRIFT-1704:
------------------------------------

The Python generator changed non-trivially since the patch was written, so some 
care needs to be taken to rebase it properly. I've been busy with other stuff, 
but since you're interested I'll try reapplying it tonight.
                
> Tornado support (Python)
> ------------------------
>
>                 Key: THRIFT-1704
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1704
>             Project: Thrift
>          Issue Type: New Feature
>          Components: Python - Compiler, Python - Library
>    Affects Versions: 0.9
>         Environment: Tornado 2.4.0 
> (https://github.com/facebook/tornado/tree/v2.4.0)
>            Reporter: Chris Piro
>         Attachments: thrift-1704-tornado-2.patch, thrift-1704-tornado.patch
>
>
> Add support for Tornado, the non-blocking server framework released by 
> Facebook. The attached patch adds a {{--gen py:tornado}} option to the 
> compiler, support bits to Python library, a tutorial server and client, and a 
> modest unit test.
> The attached patch (against {{trunk}}) has been running in the critical path 
> of a production web site for several months with modest load. It seems to 
> work fine, though no serious attempt has been made to optimize for 
> performance.
> some snippets from the tutorial server and client code, respectively:
> {code}
> class CalculatorHandler(object):
>     def add(self, n1, n2, callback):
>         callback(n1 + n2)
> def main():
>     handler = CalculatorHandler()
>     processor = Calculator.Processor(handler)
>     pfactory = TBinaryProtocol.TBinaryProtocolFactory()
>     server = TTornado.TTornadoServer(processor, pfactory)
>     server.bind(9090)
>     server.start(1)
>     ioloop.IOLoop.instance().start()
> {code}
> {code}
> transport = TTornado.TTornadoStreamTransport('localhost', 9090)
> pfactory = TBinaryProtocol.TBinaryProtocolFactory()
> client = Calculator.Client(transport, pfactory)
> yield gen.Task(transport.open)
> yield gen.Task(client.ping)
> sum_ = yield gen.Task(client.add, 1, 1)
> print "1 + 1 = {}".format(sum_)
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to