Skip to content

Commit b175745

Browse files
author
YunaiV
committed
增加 activemq 示例
1 parent 69ccbe1 commit b175745

File tree

5 files changed

+58
-45
lines changed

5 files changed

+58
-45
lines changed

lab-32/lab-32-activemq-demo-orderly/src/main/java/cn/iocoder/springboot/lab32/activemqdemo/consumer/Demo04Consumer.java

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package cn.iocoder.springboot.lab32.activemqdemo.consumer;
22

3-
import cn.iocoder.springboot.lab32.activemqdemo.message.Demo4Message;
3+
import cn.iocoder.springboot.lab32.activemqdemo.message.Demo04Message;
44
import org.slf4j.Logger;
55
import org.slf4j.LoggerFactory;
66
import org.springframework.jms.annotation.JmsListener;
@@ -11,9 +11,11 @@ public class Demo04Consumer {
1111

1212
private Logger logger = LoggerFactory.getLogger(getClass());
1313

14-
@JmsListener(destination = Demo4Message.QUEUE,
15-
concurrency = "2")
16-
public void onMessage(Demo4Message message) {
14+
@JmsListener(destination = Demo04Message.QUEUE_0)
15+
@JmsListener(destination = Demo04Message.QUEUE_1)
16+
@JmsListener(destination = Demo04Message.QUEUE_2)
17+
@JmsListener(destination = Demo04Message.QUEUE_3)
18+
public void onMessage(Demo04Message message) {
1719
logger.info("[onMessage][线程编号:{} 消息内容:{}]", Thread.currentThread().getId(), message);
1820
}
1921

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package cn.iocoder.springboot.lab32.activemqdemo.message;
2+
3+
import java.io.Serializable;
4+
5+
public class Demo04Message implements Serializable {
6+
7+
public static final String QUEUE_BASE = "QUEUE_DEMO_04-";
8+
public static final String QUEUE_0 = QUEUE_BASE + "0";
9+
public static final String QUEUE_1 = QUEUE_BASE + "1";
10+
public static final String QUEUE_2 = QUEUE_BASE + "2";
11+
public static final String QUEUE_3 = QUEUE_BASE + "3";
12+
13+
public static final int QUEUE_COUNT = 4;
14+
15+
/**
16+
* 编号
17+
*/
18+
private Integer id;
19+
20+
public Demo04Message setId(Integer id) {
21+
this.id = id;
22+
return this;
23+
}
24+
25+
public Integer getId() {
26+
return id;
27+
}
28+
29+
@Override
30+
public String toString() {
31+
return "Demo04Message{" +
32+
"id=" + id +
33+
'}';
34+
}
35+
36+
}

lab-32/lab-32-activemq-demo-orderly/src/main/java/cn/iocoder/springboot/lab32/activemqdemo/message/Demo4Message.java

-30
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,26 @@
11
package cn.iocoder.springboot.lab32.activemqdemo.producer;
22

3-
import cn.iocoder.springboot.lab32.activemqdemo.message.Demo4Message;
3+
import cn.iocoder.springboot.lab32.activemqdemo.message.Demo04Message;
44
import org.springframework.beans.factory.annotation.Autowired;
55
import org.springframework.jms.core.JmsMessagingTemplate;
66
import org.springframework.stereotype.Component;
77

88
@Component
9-
public class Demo03Producer {
9+
public class Demo04Producer {
1010

1111
@Autowired
1212
private JmsMessagingTemplate jmsTemplate;
1313

1414
public void syncSend(Integer id) {
15-
// 创建 Demo03Message 消息
16-
Demo4Message message = new Demo4Message();
15+
// 创建 Demo04Message 消息
16+
Demo04Message message = new Demo04Message();
1717
message.setId(id);
1818
// 同步发送消息
19-
jmsTemplate.convertAndSend(Demo4Message.QUEUE, message);
19+
jmsTemplate.convertAndSend(this.getQueue(id), message);
20+
}
21+
22+
private String getQueue(Integer id) {
23+
return Demo04Message.QUEUE_BASE + (id % Demo04Message.QUEUE_COUNT);
2024
}
2125

2226
}
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,20 @@
1313

1414
@RunWith(SpringRunner.class)
1515
@SpringBootTest(classes = Application.class)
16-
public class Demo03ProducerTest {
16+
public class Demo04ProducerTest {
1717

1818
private Logger logger = LoggerFactory.getLogger(getClass());
1919

2020
@Autowired
21-
private Demo03Producer producer;
21+
private Demo04Producer producer;
2222

2323
@Test
2424
public void testSyncSend() throws InterruptedException {
25-
for (int i = 0; i < 10; i++) {
26-
int id = (int) (System.currentTimeMillis() / 1000);
27-
producer.syncSend(id);
28-
// logger.info("[testSyncSend][发送编号:[{}] 发送成功]", id);
25+
for (int i = 0; i < 2; i++) {
26+
for (int id = 0; id < 4; id++) {
27+
producer.syncSend(id);
28+
// logger.info("[testSyncSend][发送编号:[{}] 发送成功]", id);
29+
}
2930
}
3031

3132
// 阻塞等待,保证消费

0 commit comments

Comments
 (0)