#python #rest #python-requests #rabbitmq #pika
Вопрос:
Я пытаюсь сделать два запроса на API-интерфейсы REST от другой моей службы, но я продолжаю получать ConnectionResetError(104, 'Connection reset by peer')
сообщение об ошибке. Сообщение извлекается из очереди, и вызовы выполняются. Но когда все функции заканчиваются, я получаю ошибку.
Я читал, что блокирование ввода-вывода вызывает эту ошибку, и я думаю, что http-вызовы связаны с вводом-выводом, но я не совсем уверен. Это также может быть проблемой тайм-аута для того, что я знаю. Но я впервые внедряю систему очередей в python, и я совсем не уверен. Оба вызова api выполняются довольно долго. Около 15 минут.
print(' [*] Connecting to server ...')
credentials = pika.PlainCredentials('root', 'root')
connection = pika.BlockingConnection(
pika.ConnectionParameters('rabbitmq',5672,'/',credentials)
)
def callback(ch, method, properties, body):
data = json.loads(body)
analisis_id = data['analisis_id']
# SCRIPT
dict_toplevel = toplevel_script(data) # API CALLs
ch.basic_ack(delivery_tag = method.delivery_tag)
channel = connection.channel()
channel.queue_declare(queue='eureka', durable=True)
channel.basic_consume(queue='eureka',
on_message_callback=callback)
thread = Thread(target = channel.start_consuming)
thread.start()
Редактировать:
Посмотри в журналах, я нашел это:
missed heartbeats from client, timeout: 60s