У меня есть «проблема», которую, кажется, невозможно решить самостоятельно. У меня есть следующие 3 программы:
[ ]<------ [ ] ------>[ ]
[ A ] [ B ] [ C ]
[ ] ------>[ ]<------ [ ]
В соответствии с этой схемой, A и B, а также B и C используют очередь сообщений для связи.
B создает очередь сообщенийкоторый содержит сообщение для A. A создайте очередь сообщений, которая содержит сообщение для B. То же самое касается B и C. B создает для C, C для B.
Я выбираю в этих разных очередях сообщений. Например, B, подключитесь к очереди сообщений из C и из A. Он выбирает те 2, чтобы получить сообщение.
Но здесь возникает проблема. Я хотел бы обнаружить из B, если A сбой. И если это так, отключите очередь сообщений и подключитесь позже, когда вернется А.
Я понятия не имею, как это сделать ... select не возвращает, если происходит сбой A (это будет означать, что сбой A и затем«отключить / удалить» его очередь сообщений.
Другая информация в соответствии с комментариями : я использую GNU / Linux и использую функцию «mq _...»
У вас есть идеи? Поставьте таймер на выборку, а затем проверьте, что очередь сообщений все еще существует? Если да, то как? Другая идея?
Спасибо!