File tree 5 files changed +58
-45
lines changed
lab-32/lab-32-activemq-demo-orderly/src
main/java/cn/iocoder/springboot/lab32/activemqdemo
test/java/cn/iocoder/springboot/lab32/activemqdemo/producer
5 files changed +58
-45
lines changed Original file line number Diff line number Diff line change 1
1
package cn .iocoder .springboot .lab32 .activemqdemo .consumer ;
2
2
3
- import cn .iocoder .springboot .lab32 .activemqdemo .message .Demo4Message ;
3
+ import cn .iocoder .springboot .lab32 .activemqdemo .message .Demo04Message ;
4
4
import org .slf4j .Logger ;
5
5
import org .slf4j .LoggerFactory ;
6
6
import org .springframework .jms .annotation .JmsListener ;
@@ -11,9 +11,11 @@ public class Demo04Consumer {
11
11
12
12
private Logger logger = LoggerFactory .getLogger (getClass ());
13
13
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 ) {
17
19
logger .info ("[onMessage][线程编号:{} 消息内容:{}]" , Thread .currentThread ().getId (), message );
18
20
}
19
21
Original file line number Diff line number Diff line change
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
+ }
Load Diff This file was deleted.
Original file line number Diff line number Diff line change 1
1
package cn .iocoder .springboot .lab32 .activemqdemo .producer ;
2
2
3
- import cn .iocoder .springboot .lab32 .activemqdemo .message .Demo4Message ;
3
+ import cn .iocoder .springboot .lab32 .activemqdemo .message .Demo04Message ;
4
4
import org .springframework .beans .factory .annotation .Autowired ;
5
5
import org .springframework .jms .core .JmsMessagingTemplate ;
6
6
import org .springframework .stereotype .Component ;
7
7
8
8
@ Component
9
- public class Demo03Producer {
9
+ public class Demo04Producer {
10
10
11
11
@ Autowired
12
12
private JmsMessagingTemplate jmsTemplate ;
13
13
14
14
public void syncSend (Integer id ) {
15
- // 创建 Demo03Message 消息
16
- Demo4Message message = new Demo4Message ();
15
+ // 创建 Demo04Message 消息
16
+ Demo04Message message = new Demo04Message ();
17
17
message .setId (id );
18
18
// 同步发送消息
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 );
20
24
}
21
25
22
26
}
Original file line number Diff line number Diff line change 13
13
14
14
@ RunWith (SpringRunner .class )
15
15
@ SpringBootTest (classes = Application .class )
16
- public class Demo03ProducerTest {
16
+ public class Demo04ProducerTest {
17
17
18
18
private Logger logger = LoggerFactory .getLogger (getClass ());
19
19
20
20
@ Autowired
21
- private Demo03Producer producer ;
21
+ private Demo04Producer producer ;
22
22
23
23
@ Test
24
24
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
+ }
29
30
}
30
31
31
32
// 阻塞等待,保证消费
You can’t perform that action at this time.
0 commit comments