8000 merge bug23943 into master · syk-coder/rabbitmq-tutorials@1ae0ea2 · GitHub
[go: up one dir, main page]

Skip to content

Commit 1ae0ea2

Browse files
author
Ann Witbrock
committed
merge bug23943 into master
Conflict resolved: python/README.md
2 parents cb591b0 + 4f08455 commit 1ae0ea2

13 files changed

+52
-41
lines changed

python/README.md

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,13 @@ tutorials](http://www.rabbitmq.com/getstarted.html).
55

66
## Requirements
77

8-
To run this code you need `pika` library version 0.5.2 (newer versions
9-
may not work). To install it run
8+
To run this code you need `pika` library version 0.9.5. To install it run
109

11-
pip install -e git+http://github.com/pika/pika.git@v0.5.2#egg=pika-v0.5.2
10+
pip install -e git+http://github.com/pika/pika.git@v0.9.5#egg=pika-v0.9.5
1211

13-
or
12+
You may first need to run
1413

15-
easy_install pika==0.5.2
14+
easy_install pip
1615

1716

1817
## Code
@@ -34,3 +33,20 @@ or
3433
python receive_logs.py
3534
python emit_log.py
3635

36+
37+
[Tutorial four: Routing](http://www.rabbitmq.com/tutorial-four-python.html)
38+
39+
python receive_logs_direct.py
40+
python emit_log_direct.py
41+
42+
43+
[Tutorial five: Topics](http://www.rabbitmq.com/tutorial-five-python.html)
44+
45+
python receive_logs_topic.py
46+
python emit_log_topic.py
47+
48+
49+
[Tutorial six: RPC](http://www.rabbitmq.com/tutorial-six-python.html)
50+
51+
python rpc_server.py
52+
python rpc_client.py

python/emit_log.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import pika
33
import sys
44

5-
connection = pika.AsyncoreConnection(pika.ConnectionParameters(
5+
connection = pika.BlockingConnection(pika.ConnectionParameters(
66
host='localhost'))
77
channel = connection.channel()
88

python/emit_log_direct.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import pika
33
import sys
44

5-
connection = pika.AsyncoreConnection(pika.ConnectionParameters(
5+
connection = pika.BlockingConnection(pika.ConnectionParameters(
66
host='localhost'))
77
channel = connection.channel()
88

python/emit_log_topic.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import pika
33
import sys
44

5-
connection = pika.AsyncoreConnection(pika.ConnectionParameters(
5+
connection = pika.BlockingConnection(pika.ConnectionParameters(
66
host='localhost'))
77
channel = connection.channel()
88

python/new_task.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@
22
import pika
33
import sys
44

5-
connection = pika.AsyncoreConnection(pika.ConnectionParameters(
5+
connection = pika.BlockingConnection(pika.ConnectionParameters(
66
host='localhost'))
77
channel = connection.channel()
88

99
channel.queue_declare(queue='task_queue', durable=True)
1010

1111
message = ' '.join(sys.argv[1:]) or "Hello World!"
12-
channel.basic_publish(exchange='', routing_key='task_queue',
12+
channel.basic_publish(exchange='',
13+
routing_key='task_queue',
1314
body=message,
1415
properties=pika.BasicProperties(
1516
delivery_mode = 2, # make message persistent

python/receive.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/usr/bin/env python
22
import pika
33

4-
connection = pika.AsyncoreConnection(pika.ConnectionParameters(
4+
connection = pika.BlockingConnection(pika.ConnectionParameters(
55
host='localhost'))
66
channel = connection.channel()
77

@@ -17,4 +17,4 @@ def callback(ch, method, properties, body):
1717
queue='hello',
1818
no_ack=True)
1919

20-
pika.asyncore_loop()
20+
channel.start_consuming()

python/receive_logs.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
#!/usr/bin/env python
22
import pika
33

4-
connection = pika.AsyncoreConnection(pika.ConnectionParameters(
4+
connection = pika.BlockingConnection(pika.ConnectionParameters(
55
host='localhost'))
66
channel = connection.channel()
77

88
channel.exchange_declare(exchange='logs',
99
type='fanout')
1010

1111
result = channel.queue_declare(exclusive=True)
12-
queue_name = result.queue
12+
queue_name = result.method.queue
1313

1414
channel.queue_bind(exchange='logs',
1515
queue=queue_name)
@@ -23,4 +23,4 @@ def callback(ch, method, properties, body):
2323
queue=queue_name,
2424
no_ack=True)
2525

26-
pika.asyncore_loop()
26+
channel.start_consuming()

python/receive_logs_direct.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
import pika
33
import sys
44

5-
connection = pika.AsyncoreConnection(pika.ConnectionParameters(
5+
connection = pika.BlockingConnection(pika.ConnectionParameters(
66
host='localhost'))
77
channel = connection.channel()
88

99
channel.exchange_declare(exchange='direct_logs',
1010
type='direct')
1111

1212
result = channel.queue_declare(exclusive=True)
13-
queue_name = result.queue
13+
queue_name = result.method.queue
1414

1515
severities = sys.argv[1:]
1616
if not severities:
@@ -31,4 +31,4 @@ def callback(ch, method, properties, body):
3131
queue=queue_name,
3232
no_ack=True)
3333

34-
pika.asyncore_loop()
34+
channel.start_consuming()

python/receive_logs_topic.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
import pika
33
import sys
44

5-
connection = pika.AsyncoreConnection(pika.ConnectionParameters(
5+
connection = pika.BlockingConnection(pika.ConnectionParameters(
66
host='localhost'))
77
channel = connection.channel()
88

99
channel.exchange_declare(exchange='topic_logs',
1010
type='topic')
1111

1212
result = channel.queue_declare(exclusive=True)
13-
queue_name = result.queue
13+
queue_name = result.method.queue
1414

1515
binding_keys = sys.argv[1:]
1616
if not binding_keys:
@@ -31,4 +31,4 @@ def callback(ch, method, properties, body):
3131
queue=queue_name,
3232
no_ack=True)
3333

34-
pika.asyncore_loop()
34+
channel.start_consuming()

python/rpc_client.py

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,38 +4,33 @@
44

55
class FibonacciRpcClient(object):
66
def __init__(self):
7-
self.connection = pika.AsyncoreConnection(pika.ConnectionParameters(
7+
self.connection = pika.BlockingConnection(pika.ConnectionParameters(
88
host='localhost'))
99

1010
self.channel = self.connection.channel()
1111

1212
result = self.channel.queue_declare(exclusive=True)
13-
self.callback_queue = result.queue
13+
self.callback_queue = result.method.queue
1414

15-
self.requests = {}
1615
self.channel.basic_consume(self.on_response, no_ack=True,
1716
queue=self.callback_queue)
1817

1918
def on_response(self, ch, method, props, body):
20-
corr_id = props.correlation_id
21-
if corr_id in self.requests:
22-
self.requests[corr_id] = body
19+
if self.corr_id == props.correlation_id:
20+
self.response = body
21+
self.channel.stop_consuming()
2322

2423
def call(self, n):
25-
corr_id = str(uuid.uuid4())
26-
self.requests[corr_id] = None
24+
self.corr_id = str(uuid.uuid4())
2725
self.channel.basic_publish(exchange='',
2826
routing_key='rpc_queue',
2927
properties=pika.BasicProperties(
3028
reply_to = self.callback_queue,
31-
correlation_id = corr_id,
29+
correlation_id = self.corr_id,
3230
),
3331
body=str(n))
34-
while self.requests[corr_id] is None:
35-
pika.asyncore_loop(count=1)
36-
response = self.requests[corr_id]
37-
del self.requests[corr_id]
38-
return int(response)
32+
self.channel.start_consuming()
33+
return int(self.response)
3934

4035

4136
fibonacci_rpc = FibonacciRpcClient()

python/rpc_server.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import pika
33

44

5-
connection = pika.AsyncoreConnection(pika.ConnectionParameters(
5+
connection = pika.BlockingConnection(pika.ConnectionParameters(
66
host='localhost'))
77

88
channel = connection.channel()
@@ -36,4 +36,4 @@ def on_request(ch, method, props, body):
3636
channel.basic_consume(on_request, queue='rpc_queue')
3737

3838
print " [x] Awaiting RPC requests"
39-
pika.asyncore_loop()
39+
channel.start_consuming()

python/send.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/usr/bin/env python
22
import pika
33

4-
connection = pika.AsyncoreConnection(pika.ConnectionParameters(
4+
connection = pika.BlockingConnection(pika.ConnectionParameters(
55
host='localhost'))
66
channel = connection.channel()
77

python/worker.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import pika
33
import time
44

5-
connection = pika.AsyncoreConnection(pika.ConnectionParameters(
5+
connection = pika.BlockingConnection(pika.ConnectionParameters(
66
host='localhost'))
77
channel = connection.channel()
88

@@ -19,5 +19,4 @@ def callback(ch, method, properties, body):
1919
channel.basic_consume(callback,
2020
queue='task_queue')
2121

22-
pika.asyncore_loop()
23-
22+
channel.start_consuming()

0 commit comments

Comments
 (0)
0