2012-01-10 1 views
0

Возможно ли иметь мьютекс в очереди RabbitMQ, то есть если клиент читает из очереди, ни один другой клиент не должен читать из очереди. это возможно?Mutex is rabbitmq

Позвольте мне объяснить мой сценарий:

Два приложения работают в двух разных серверах. чтение одной очереди. Но, если одно приложение работает и читает сообщения из очереди, другое приложение ничего не должно делать. если основное приложение выходит из строя или остановлено, другое приложение должно начать чтение из этой очереди.

Это своего рода механизм сбоя. Попробуйте это раньше. Буду признателен за любую оказанную помощь.

+0

вашего подхода является своим родом недостатков. Вы должны обрабатывать это на уровне приложения не на уровне очереди. – DarthVader

+0

Я думал, что будет интересно, если есть путь в rabbitmq, поэтому отправил его здесь, чтобы увидеть, что любой эксперт RabbitMq может ответить на это, что может помочь мне и другим в какой-то момент. Спасибо за ваш вход @Darth – Madhan

ответ

0

Пока я искал, не нашли решения ... Простое решение не

  • создают очереди называют его очереди блокировки.

  • Имейте только одно сообщение, чтобы приложение прочитало его из очереди.

  • Когда приложение запускается на другом сервере, оно будет ожидать сообщения в очереди. поэтому, если первый не сработает второй

  • один прочитает сообщение и начнет обработку сообщения в нужной очереди, из которой он должен быть прочитан.

мьютекс в очереди, это так. Примечание: Этот подход будет работать только в том случае, если в очереди блокировки есть только сообщение. убедитесь, что вы обрабатываете его в своем приложении.

0

Этот разговор явно объясняет, почему это плохая идея:

http://www.youtube.com/watch?v=XiXZOF6dZuE&feature=share&t=29m55s

от ~ 29 млн 55s в

+1

Когда вы собираетесь ссылаться на что-то другое, чем на другой вопрос StackOverflow, укажите в своем ответе достаточную информацию о том, что все равно будет полезно, если связь будет нарушена в будущем. –