<div dir="ltr"><br><br>On Thursday, January 30, 2014 1:22:24 PM UTC+5:30, akhil....@gslab.com wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir="ltr"><div>Hi All,</div><div><br></div>I am working on RabbitMQ HA cluster . <span style="color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;font-size:14px;line-height:17.804800033569336px"> I want my client to connect to slave node when the master node goes down. </span><div><span style="color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;font-size:14px;line-height:17.804800033569336px">I am trying to achieve this using consumer cancel notification.</span><div><span style="color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;font-size:14px;line-height:17.804800033569336px">I am using python amqp 1.4.2 library . I have set the capability 'consumer_cancel_notify' as True in client_properties.</span></div><div><span style="color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;font-size:14px;line-height:17.804800033569336px">In basic_consume() I have passed a callback function to on_cancel parameter. But this callback is not called when master goes down.</span></div><div><span style="color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;font-size:14px;line-height:17.804800033569336px"><br></span></div><div><span style="color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;font-size:14px;line-height:17.804800033569336px">Can someone tell where I am going wrong.</span></div><div><span style="color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;font-size:14px;line-height:17.804800033569336px"><br></span></div><div><span style="color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;font-size:14px;line-height:17.804800033569336px">Following is my code :   </span></div></div><div><span style="color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;font-size:14px;line-height:17.804800033569336px"><br></span></div><div><div><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif" size="2"><span style="line-height:17.804800033569336px">import amqp</span></font></div><div><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif" size="2"><span style="line-height:17.804800033569336px"><br></span></font></div><div><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif" size="2"><span style="line-height:17.804800033569336px"># this is the callback function to receive the messages published to the queue </span></font></div><div><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif" size="2"><span style="line-height:17.804800033569336px">def myCallback(message):</span></font></div><div><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif" size="2"><span style="line-height:17.804800033569336px">    print "messsage received",message.body</span></font></div><div><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif" size="2"><span style="line-height:17.804800033569336px"><br></span></font></div><div><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif" size="2"><span style="line-height:17.804800033569336px"># this is the  callback Function for consumer cancel notification</span></font></div><div><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif" size="2"><span style="line-height:17.804800033569336px">def cancelCallback():</span></font></div><div><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif" size="2"><span style="line-height:17.804800033569336px">    print "cancelCallback called"     </span></font></div><div><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif" size="2"><span style="line-height:17.804800033569336px">    </span></font></div><div><br></div><div><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif" size="2"><span style="line-height:17.804800033569336px">cpDict = {"capabilities":{"consumer_<wbr>cancel_notify": True, },}</span></font></div><div><span style="line-height:17.804800033569336px;color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;font-size:small">con = amqp.Connection(host ="localhost:5672",userid ="guest",password="guest",</span><span style="line-height:17.804800033569336px;color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;font-size:small">clie<wbr>nt_properties=cpDict)</span></div><div><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif" size="2"><span style="line-height:17.804800033569336px">channel = con.channel() </span></font></div><div><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif" size="2"><span style="line-height:17.804800033569336px">channel.exchange_declare(<wbr>exchange="exchange1",type='<wbr>direct', durable=True, auto_delete=False)</span></font></div><div><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif" size="2"><span style="line-height:17.804800033569336px">channel.queue_declare(queue="<wbr>bm2_execQ", durable=True,exclusive=True, auto_delete=False)</span></font></div><div><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif" size="2"><span style="line-height:17.804800033569336px">channel.queue_bind(queue="bm2_<wbr>execQ",exchange="exchange1", routing_key="bm2_execQ") </span></font></div><div><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif" size="2"><span style="line-height:17.804800033569336px">channel.basic_consume(queue="<wbr>bm2_execQ",callback=<wbr>myCallback, consumer_tag="bm2_tag",on_<wbr>cancel=cancelCallback)</span></font></div><div><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif" size="2"><span style="line-height:17.804800033569336px"><br></span></font></div><div><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif" size="2"><span style="line-height:17.804800033569336px">msg = amqp.Message("hi")</span></font></div><div><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif" size="2"><span style="line-height:17.804800033569336px">msg.properties["content_type"] = "text/plain"</span></font></div><div><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif" size="2"><span style="line-height:17.804800033569336px">msg.properties["delivery_mode"<wbr>] = 2</span></font></div><div><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif" size="2"><span style="line-height:17.804800033569336px"><br></span></font></div><div><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif" size="2"><span style="line-height:17.804800033569336px">channel.basic_publish(msg,"<wbr>exchange1","bm2_execQ")</span></font></div><div><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif" size="2"><span style="line-height:17.804800033569336px"><br></span></font></div><div><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif" size="2"><span style="line-height:17.804800033569336px">while True :</span></font></div><div><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif" size="2"><span style="line-height:17.804800033569336px">    channel.wait()</span></font></div></div></div></blockquote><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div>Can somebody please help me on this? </div></div>