2013-09-10 2 views
1

Я пытаюсь использовать RabbitMQ с Python на машине Ubuntu 13.RabbitMQ и Python - соединение не может быть установлено

Все, кажется, работает - то есть работает RabbitMQ. У Python есть библиотека (я использую Pika). Выполняется код.

Но после того, как я использую публикацию и пытаюсь закрыть соединение - он не будет закрыт.

После того, как я попробовал py-amqplib, у меня такой же результат. Кажется, что очередь IS создана, но сообщение не отправлено, поэтому публикация не блокируется. Блокирует только connection.close().

Я считаю, что проблема связана с RabbitMQ, а не с библиотеками python.

Мой код:

import pika 

JOBS_QUEUE_NAME = "my.queue" 

connection = pika.BlockingConnection(pika.ConnectionParameters(
     host='localhost')) 
channel = connection.channel() 

channel.queue_declare(queue=JOBS_QUEUE_NAME) 

channel.basic_publish(exchange='', 
         routing_key=JOBS_QUEUE_NAME, 
         body='Hello World!') 
print "closing" 
connection.close() 
print "closed" 

Любые идеи?

Спасибо!

+0

Ok, некоторые откровение - если я не использую 'connection.close() все работает просто отлично. ЗАЧЕМ?! И если я не закрываю, разве это не испортит RabbitMQ? – Roman

+0

С RabbitMQ (v2.6.1) и pika (v0.9.5) ваш код работает. – mike

+0

Я переключился на Kombu и все отлично работает :) – Roman

ответ

1

На этой неделе я столкнулся с той же проблемой [connection.close() вечно вел].

Что я узнал о том, что дисковое пространство на/(и/tmp и/var) на хосте, которое запускает сервер RBMQ, было 100% -ным использованием, поэтому, очевидно, у сервера RBMQ были проблемы.

Когда я пытался перезапустить сервер («RabbitMQ-сервер перезапуска службы») Я получил [СБОЙ] и журналы мне ничего не сказал ...

То, что я сделал это:
1. Освобожденный дисковое пространство
2. Убитые сервера вручную (с «убить -HUP»), так как команда «сервис остановки» также неспособность
3. Начало работы (услугу ... старт)

и все хорошо в настоящее время.
BTW, сервер VM работает Ubuntu 12.04.

НТН, Amir

Смежные вопросы