Skip to content

Commit 777be25

Browse files
committed
Code samples for next tutorial.
1 parent cc5ad4c commit 777be25

File tree

2 files changed

+55
-0
lines changed

2 files changed

+55
-0
lines changed

python/emit_log_direct.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/usr/bin/env python
2+
import pika
3+
import sys
4+
5+
connection = pika.AsyncoreConnection(pika.ConnectionParameters(
6+
host='127.0.0.1',
7+
credentials=pika.PlainCredentials('guest', 'guest')))
8+
channel = connection.channel()
9+
10+
channel.exchange_declare(exchange='direct_logs',
11+
type='direct')
12+
13+
severity = sys.argv[1] if len(sys.argv) > 1 else 'info'
14+
assert severity in ('info', 'warning', 'error')
15+
message = ' '.join(sys.argv[2:]) or 'Hello World!'
16+
channel.basic_publish(exchange='direct_logs',
17+
routing_key=severity,
18+
body=message)
19+
print " [x] Sent %r:%r" % (severity, message)

python/receive_logs_direct.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#!/usr/bin/env python
2+
import pika
3+
import sys
4+
5+
connection = pika.AsyncoreConnection(pika.ConnectionParameters(
6+
host='127.0.0.1',
7+
credentials=pika.PlainCredentials('guest', 'guest')))
8+
channel = connection.channel()
9+
10+
channel.exchange_declare(exchange='direct_logs',
11+
type='direct')
12+
13+
result = channel.queue_declare(auto_delete=True)
14+
queue_name = result.queue
15+
16+
severities = sys.argv[1:]
17+
if not severities:
18+
print >> sys.stderr, "Usage: %s [info] [warning] [error]" % (sys.argv[0],)
19+
sys.exit(1)
20+
21+
for severity in severities:
22+
assert severity in ('info', 'warning', 'error')
23+
channel.queue_bind(exchange='direct_logs',
24+
queue=queue_name,
25+
routing_key=severity)
26+
27+
print ' [*] Waiting for logs. To exit press CTRL+C'
28+
29+
def callback(ch, method, header, body):
30+
print " [x] %r:%r" % (method.routing_key, body,)
31+
32+
channel.basic_consume(callback,
33+
queue=queue_name,
34+
no_ack=True)
35+
36+
pika.asyncore_loop()

0 commit comments

Comments
 (0)