2015-05-05 3 views
1

Я использую передачу сообщений от activemq over stomp с помощью библиотеки js stompit узла (https://github.com/gdaws/node-stomp).Как отложить сообщение activemq с помощью Stomp (AMQ_SCHEDULED_DELAY)

Проблема: - Есть случай, когда я хочу запланировать отправку сообщения через n минут. Я не вижу никакого способа установить этот заголовок AMQ_SCHEDULED_DELAY с помощью этой библиотеки (или любой другой библиотеки nodejs)

Использует ли кто-нибудь эти свойства сообщений для планирования.

ответ

1

Значения запланированных сообщений отображаются непосредственно в строковые значения с тем же именем, что и константа AMQ_SCHEDULED_DELAY, отображаемая в свойствах сообщения AMQ_SCHEDULED_DELAY. Это означает, что просто запланировать сообщение в STOMP.

Вот пример тестового теста от ActiveMQ.

@Test 
public void testSendMessageWithDelay() throws Exception { 

    MessageConsumer consumer = session.createConsumer(queue); 

    String frame = "CONNECT\n" + "login:system\n" + "passcode:manager\n\n" + Stomp.NULL; 
    stompConnection.sendFrame(frame); 

    frame = stompConnection.receiveFrame(); 
    assertTrue(frame.startsWith("CONNECTED")); 

    frame = "SEND\n" + "AMQ_SCHEDULED_DELAY:2000\n" + "destination:/queue/" + getQueueName() + "\n\n" + "Hello World" + Stomp.NULL; 

    stompConnection.sendFrame(frame); 

    TextMessage message = (TextMessage)consumer.receive(1000); 
    assertNull(message); 
    message = (TextMessage)consumer.receive(2500); 
    assertNotNull(message); 
} 
+0

Thanks Tim Bish –