hornetqのactiveMQのキューのコンシューマーにスロットルを実行したい(jbossの場合、これはmdbコンシューマーの定義にアノテーションを付けて行います)。activemqのドキュメントで類似のものを見つけることができません。私が見つけた最も近いものはこれでした
consumer.recvDelay 0 ms Pause consumer for recvDelay milliseconds with each message (allows consumer throttling).
差出人:http ://activemq.apache.org/activemq-performance-module-users-manual.html
しかし、Javaでそれを行う方法を見つけることができません。
前もって感謝します、
よろしく。
編集:ActiveMQManagerコードとコンシューマーコードは次のとおりです。
public class ActiveMQManager {
private static ActiveMQConnectionFactory CONNECTION_FACTORY;
public static Connection CONNECTION;
public static Session SESSION;
public static Destination TEST_QUEUE;
public static void start() {
try {
CONNECTION_FACTORY = new ActiveMQConnectionFactory("vm://localhost");
CONNECTION = CONNECTION_FACTORY.createConnection();
CONNECTION.start();
SESSION = CONNECTION.createSession(false,
Session.CLIENT_ACKNOWLEDGE);
TestClient testClient = new TestClient();
TEST_QUEUE = SESSION.createQueue("TEST.QUEUE");
MessageConsumer testConsumer = SESSION.createConsumer(TEST_QUEUE);
test.setMessageListener(testClient);
} catch (Exception e) {
}
}
public static void stop() {
try {
// Clean up
SESSION.close();
CONNECTION.close();
} catch (JMSException e) {
log.error(e);
}
}
}
コンシューマーコードは非常に単純です(この例の場合):
public class TestConsumer implements MessageListener {
@Override
public void onMessage(Message message) {
//Do something with the message
}
}