Упрощенный:
У меня есть очередь в activemq. Когда определенное сообщение считывается из очереди, я хочу заблокировать очередь, пока этот процесс не закончит работу над полученным сообщением.Как заблокировать очередь сообщений
Дополнительная информация:
У меня есть система с большим количеством пользователей. Каждый раз, когда пользователь меняет свое состояние в системе (профиль, роль, доступ, право собственности на актив и т. Д.), Мне также необходимо обновить сторонний сервер с этими изменениями. Эта третья сторона отдельно от нас, и api, которую они выставляют, позволяет мне обновлять только одного пользователя за раз и занимает около секунды.
Я использую ActiveMQ для отсоединения основного процесса обновления от обновления сторонней системы.
Однажды ночью я получаю файл фида, который может содержать тысячи пользовательских изменений. Поскольку это критическая задача, и обновление третьей стороны не так чувствительно к времени, и, поскольку обновление третьей стороны может потребоваться для чтения из той же таблицы, основной процесс - массовое обновление, мне нужно заблокировать очередь. Смысл, я хочу, чтобы activeMQ получал сообщения для каждого пользователя, которого я изменил в основном процессе, но также хочу, чтобы ActiveMQ поддерживал эти сообщения до тех пор, пока основной процесс не будет выполнен.
Любой встроенный механизм в ActiveMQ для этого?
Если я правильно понял, у вас есть система, которая [процесс обновления] -AMQ-> [адаптер] -> [сторонний API], и вы не хотите, чтобы адаптер работал до тех пор, пока не будет загружен процесс обновления все сообщения в? –