import sys
sys.path.append('C:\Temp\jython\Lib')
sys.path.append('C:\Temp\jython\Lib\site-packages')
import pika
import uuid
queue_replay="amq.rabbitmq.reply-to"
vHost='pres'
class FibonacciRpcClient(object):
def
init(self):
self.connection = pika.BlockingConnection(
pika.URLParameters(''+vHost))
self.channel =
self.connection.channel()
result = self.channel.queue_declare(queue=queue_replay, exclusive=True)
self.callback_queue = result.method.queue
self.channel.basic_consume(
queue=self.callback_queue,
on_message_callback=self.on_response,
auto_ack=True)
def on_response(self, ch, method, props, body):
if self.corr_id == props.correlation_id:
self.response = body
def call(self, message, routing):
self.response = None
self.corr_id = str(uuid.uuid4())
self.channel.basic_publish(
exchange='',
routing_key=routing,
properties=pika.BasicProperties(
reply_to=self.callback_queue,
correlation_id=self.corr_id,
),
body=message)
while self.response is None:
self.connection.process_data_events()
return self.response
fibonacci_rpc = FibonacciRpcClient()
messageTest = '{"registries":["categories"]}'
routingKey='registries.list'
print(" [x] Requesting "+messageTest)
response = fibonacci_rpc.call(messageTest,routingKey)
print(" [.] Got %r" % response)