summaryrefslogtreecommitdiff
path: root/examples/experimental/async_consume.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/experimental/async_consume.py')
-rw-r--r--examples/experimental/async_consume.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/examples/experimental/async_consume.py b/examples/experimental/async_consume.py
new file mode 100644
index 00000000..1127128a
--- /dev/null
+++ b/examples/experimental/async_consume.py
@@ -0,0 +1,29 @@
+#!/usr/bin/env python
+
+from kombu import Connection, Exchange, Queue, Producer, Consumer
+from kombu.async import Hub
+from threading import Event
+
+hub = Hub()
+exchange = Exchange('asynt')
+queue = Queue('asynt', exchange, 'asynt')
+
+def send_message(conn):
+ producer = Producer(conn)
+ producer.publish('hello world', exchange=exchange, routing_key='asynt')
+ print('MESSAGE SENT')
+
+
+def on_message(message):
+ print('RECEIVED: %r' % (message.body, ))
+ message.ack()
+ hub.stop() # <-- exit after one message
+
+
+if __name__ == '__main__':
+ conn = Connection('amqp://')
+ conn.register_with_event_loop(hub)
+
+ with Consumer(conn, [queue], on_message=on_message):
+ send_message(conn)
+ hub.run_forever()