Найти - Пользователи
Полная версия: Помогите в устранении ошибки
Начало » Центр помощи » Помогите в устранении ошибки
1
GrabGold
Здравствуйте. Пишу веб приложение и столкнулся с проблемой. Выдает данный код ошибки
pika.exceptions.ConnectionClosed: Connection to 127.0.0.1:5672 failed: Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение

Сама БД включена в логах видно, что подключение идет , однако установки соединения нет.
PEHDOM
очевидно же что “конечный компьютер отверг запрос на подключение”, почему так, можно гадать до бесконечности: неправильный код, логин-пароль, фаервол, антивирус , вирус, настройка автризации\прав пользователя на БД … вам все возможные причины перечислить?
py.user.next
GrabGold
Сама БД включена в логах видно, что подключение идет , однако установки соединения нет.
Посмотри через Wireshark процесс подключения. Проверь, можно ли telnet'ом подключиться на этот адрес:порт.
GrabGold
Есть такой скрипт, и в данной строчке
self.connection = pika.BlockingConnection(pika.ConnectionParameters(host))
он и выдает данную ошибку. Использую Mongodb, однако что со включенной, что с выключенной бд он выдает одно о то же.
 import pika
import logging
import time
class MessageQueue:
    EXCHANGE_NAME = "rra-direct"
    def __init__(self, queue_names = None, host="localhost", delay=5.0):
        self.delay = delay
        self.logger = logging.getLogger(self.__class__.__name__)
        self.connection = pika.BlockingConnection(pika.ConnectionParameters(host))
        self.queues = {}
        self.channel = self.connection.channel()
        self.channel.exchange_declare(exchange=self.EXCHANGE_NAME,
                                      exchange_type="direct")
        if queue_names is not None:
            for queue_name in queue_names:
                self.add_queue(queue_name)
    def send_message(self, message, routing_key):
        self.channel.basic_publish(exchange=self.EXCHANGE_NAME,
                                   routing_key=routing_key,
                                   body=message)
        self.logger.debug("Message : %s sent" % message)
    def receive_message(self, queue_name):
        method_frame, header_frame, body = self.channel.basic_get(queue=queue_name)
        while method_frame is None or method_frame.NAME == 'Basic.GetEmpty':
            method_frame, header_frame, body = self.channel.basic_get(queue=queue_name)
            time.sleep(self.delay)
        self.channel.basic_ack(delivery_tag=method_frame.delivery_tag)
        return body
    def bind(self, queue_name, routing_key):
        if queue_name in self.queues.keys():
            self.channel.queue_bind(exchange=self.EXCHANGE_NAME,
                                    queue=queue_name,
                                    routing_key=routing_key)
        else:
            self.logger.error("Queue %s not found" % queue_name)
    def add_queue(self, queue_name):
        if queue_name not in self.queues.keys():
            self.queues[queue_name] = self.channel.queue_declare(queue=queue_name)
        else:
            self.logger.error("Queue %s already exists" % queue_name)
JOHN_16
GrabGold
Вы не можете подключиться не к монге, а к вашему RabbitMQ (как я предположу). Ищете проблему в этом месте
PEHDOM
GrabGold
Есть такой скрипт, и в данной строчке
- может там нужно логин-пароль указать, может локаль другую, может ssl нужно в(ы)ключить, может еще что, смотри в настройки кролика. - потому как там много дефолтных параметров. https://pika.readthedocs.io/en/stable/_modules/pika/connection.html#ConnectionParameters
- проверь доступность потра банальным телнетом как советовал py.user.next смотри логи кролика
там должно быть написано почему оно разорвало конект, если нету, может нужно выставить более детальное логирование.
GrabGold
Использую Mongodb
монго там ни при чем, она только для хранения используеться, нужно чтобы RabbitMQ был запущен.


GrabGold
Спасибо, проблема была в RabbitMQ
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB