[ 
https://issues.apache.org/jira/browse/PROTON-2404?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gordon Sim reassigned PROTON-2404:
----------------------------------

    Assignee: Andrew Stitcher  (was: Gordon Sim)

> [python] Tornado container does not work both timer and connection
> ------------------------------------------------------------------
>
>                 Key: PROTON-2404
>                 URL: https://issues.apache.org/jira/browse/PROTON-2404
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: examples
>            Reporter: Fredrik Hallenberg
>            Assignee: Andrew Stitcher
>            Priority: Major
>
> I am trying to get the Python tornado container working with qpid proton 
> 0.34. My goal is to create a tornado server that can also send and receive 
> amqp messages using a timer. With the below example tornado server works fine 
> but I am not able to run both timer and amqp connection. If the schedule call 
> below is uncommented the amqp connection stops working. I can also comment 
> out create_sender/receive and then timer ticks works.
>  
> It seems to me that something is missing in the tornado container. Although 
> it just an example I think it is essential to be able to combine the amqp 
> event loop with event loops in other libraries. It would be good to also have 
> a container based on asyncio.
>  
> from proton import Message
> from proton.handlers import MessagingHandler
> from proton_tornado import Container
> import tornado.ioloop
> import tornado.web
> class Client(MessagingHandler):
>     def __init__(self, url):
>         super(Client, self).__init__()
>         self.url = url
>     def on_timer_task(self, event):
>         print('tick')
>         self.container.schedule(1, self)
>     def on_start(self, event):
>         self.container = event.reactor
>         self.sender = event.container.create_sender(self.url)
>         self.receiver = 
> event.container.create_receiver(self.sender.connection)
>         #self.container.schedule(1, self)
>     def on_link_opened(self, event):
>         print(event)
> class ExampleHandler(tornado.web.RequestHandler):
>     def get(self):
>         self.write('hello')
> loop = tornado.ioloop.IOLoop.instance()
> client = Client("localhost:5800")
> client.container = Container(client, loop)
> client.container.initialise()
> app = tornado.web.Application([tornado.web.url(r"/hello", ExampleHandler)])
> app.listen(8888)
> loop.start()
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to