вопрос состоит из двух частей, которые должны быть рассмотрены отдельно:
Может быть отложено сообщение в ActiveMQ?
Да - см. Delay and Schedule Message Delivery. Вам нужно установить <broker ... schedulerSupport="true">
в конфигурацию ActiveMQ, а также установить свойство AMQ_SCHEDULED_DELAY
сообщения JMS о том, как долго вы хотите, чтобы сообщение было отложено (10000 в вашем случае).
Есть ли способ предотвратить использование одного и того же сообщения более одного раза?
Да, но это касается приложений, а не ActiveMQ. Его часто называют дедупликацией или идемпотентным потреблением. Самый простой способ, если у вас есть только один потребитель, - отслеживать сообщения, полученные на карте, и проверять, действительно ли вы получаете сообщение. Это было видно, отбросить.
Для более сложных случаев использования, когда у вас несколько пользователей на разных компьютерах, или вы хотите, чтобы это состояние выдержало перезапуск приложения, вам нужно будет хранить таблицу сообщений, просматриваемую в базе данных, и запрашивать ее каждый раз.
Просьба проголосовать за этот ответ, если это поможет, так как оно побуждает людей помочь вам.
Вы знаете, как вы бы настроить это с помощью загрузки пружины? @Chanaka удайя – neaGaze