Example 6 Python code example (pika)

import pika, ssl

from pika.credentials import ExternalCredentials import json

import logging

logging.basicConfig()

###############################################

#Callback function that handles messages

def callback(ch, method, properties, body): msg = json.loads(body)

timestamp = msg['timestamp'] resourceUri = msg['resourceUri'] resource = msg['resource'] changeType = msg['changeType']

print

print ("%s: Message received:" %(timestamp))

print ("Routing Key: %s" %(method.routing_key))

print ("Change Type: %s" %(changeType))

print ("Resource URI: %s" %(resourceUri))

print ("Resource: %s" %(resource))

# Setup our ssl options

ssl_options = ({"ca_certs": "caroot.pem", "certfile": "client.pem", "keyfile": "key.pem", "cert_reqs": ssl.CERT_REQUIRED, "server_side": False})

#Connect to RabbitMQ host = "example.com"

connection = pika.BlockingConnection(

pika.ConnectionParameters(

host, 5671, credentials=ExternalCredentials(), ssl=True, ssl_options=ssl_options))

#Create and bind to queue EXCHANGE_NAME = "scmb" ROUTING_KEY = "scmb.#"

channel = connection.channel() result = channel.queue_declare() queue_name = result.method.queue

channel.queue_bind(exchange=EXCHANGE_NAME, queue=queue_name, routing_key=ROUTING_KEY)

channel.basic_consume(callback, queue=queue_name, no_ack=True)

#Start listening for messages channel.start_consuming()

26.6 Python code example 193