Azure Kubernetes Service
An Azure service that provides serverless Kubernetes, an integrated continuous integration and continuous delivery experience, and enterprise-grade security and governance.
2,447 questions
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
I have deployed python script in azure kubernetes services which will make connection with rabbitmq to get input data and process it and pass the output data back to the rabbitmq in the form of messages , but i am getting below error when there is no data or messages in the queue for long time , i want my script should wait until data comes in rabbitmq
error: http2: client connection lost
Below is my code to connect with rabbitmq in python
def callback(ch, method, properties, body):
try:
rabbit_data=[]
ch.exchange_declare(exchange='DataEx', exchange_type='fanout',durable=True)
if body != None:
rabbit_data.append(body)
if len(rabbit_data) > 0:
for i in rabbit_data:
final_packet=call_it(i)
if final_packet:
a_logger.info(str(len(final_packet)))
#out = { "reading_data": json.loads(a),
# "emission_data":json.loads(b)}
for data_output in final_packet:
ch.basic_publish(exchange='DataEx',routing_key='',
body=json.dumps(data_output),
properties=pika.BasicProperties(
content_type="text/plain",
delivery_mode=2))
#
rabbit_data.remove(i)
else:
#ch.basic_reject(delivery_tag = method.delivery_tag,requeue=True)
pass
else:
ch.stop_consuming()
ch.basic_ack(delivery_tag = method.delivery_tag,multiple=False)
except Exception as e:
a_logger.info("error in rabbitmq callback as : {}".format(str(e)))
credentials = pika.PlainCredentials(username, password)
parameters = pika.ConnectionParameters(host=Api_url,virtual_host=rmqvhost,credentials=credentials,heartbeat=0)
print (username,password)
connection = pika.BlockingConnection(parameters)
channel = connection.channel()
channel.queue_declare(queue='Plume',durable=True)
channel.basic_qos(prefetch_size=0,prefetch_count=1) # this is for acknowdeging packet one by one
channel.basic_consume(queue='Plume', on_message_callback=callback,auto_ack=False)
a_logger.info(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()