error: http2: client connection lost for azure kubernetes service

Vishal Suryavanshi 21 Reputation points
2022-01-06T13:03:03.607+00:00

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()
Azure Kubernetes Service (AKS)
Azure Kubernetes Service (AKS)
An Azure service that provides serverless Kubernetes, an integrated continuous integration and continuous delivery experience, and enterprise-grade security and governance.
1,869 questions
Azure Load Balancer
Azure Load Balancer
An Azure service that delivers high availability and network performance to applications.
404 questions
{count} votes