RabbitMQ là một phần mềm
cho phép xây dựng Message Queue theo protocol AMQP
và khá thông dụng trên thế giới. Để kết nối đến
RabbitMQ trên Python, ta sẽ sử dụng
thư viện pika .
1. Cài đặt
Có thể xem thêm về hướng
dẫn cài đặt thư viện này tại
Đơn giản cài thông qua pip là:
$ sudo pip install pika
2 Gởi một message đến Server -Provider
Ví dụ để gởi một message
đến server
import pika
connection = pika.BlockingConnection(pika.Connectio
nParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
channel.basic_publish(exchange='', routing_key='hel
lo',
body='Hello
World!')
print "
[x] Sent 'Hello World!'"
connection.close()
Để gởi một message,
chúng ta cần kết nối đến server và khai báo một channel, ở
đây là channel có tên là hello .
Sau khi khai báo
channel, tao tiến hành gởi message có nội dung Hello World! thông qua channel này, kèm theo khai báo routing_key là hello . Routing Key sẽ giúp điều
hướng message này đến
đúng các worker được khai báo nhận message theo
routing key (Consumer)
3. Nhận message - Consumer
Ở bước trước, ta đã tạo
một message lên queue. Ở bước
này, ta sẽ khai báo một
worker xử lý các message nhận
được từ channel hello .
import pika
connection = pika.BlockingConnection(pika.Connectio
nParameters(host='localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
print '
[*] Waiting for messages. To exit press CTR
L+C'
def callback(ch,
method, properties, body):
print "
[x] Received %r" % (body,)
channel.basic_consume(callback, queue='hello', no_a
ck=True)
channel.start_consuming()
Đoạn code này cũng có
phần khai báo connection ,
channel . Tuy nhiên, vì là
consumer nên sẽ sử dụng
phương thức basic_consume để lắng nghe trên queue
hello , khi có message đến sẽ
gọi hàm callback() để xử
lý. Trong trường hợp ví
dụ này thì callback chỉ đơn giản là
hiển thị chuỗi thông báo
đã nhận được message.
4. Tìm hiểu thêm về RabbitMQ và Pika
Nội dung chương này
không có ý định giới thiệu tất cả khái
niệm của AMQP cũng như
RabbitMQ mà chủ yếu giới thiệu
thư viện pika để làm việc với RabbitMQ. Bạn có thể tiếp
tục theo dõi các hướng
dẫn về khái niệm của RabbitMQ và
Pika tại website chính
thức của RabbitMQ.
0 comments:
Post a Comment