@@ -18,56 +18,66 @@ export class RabbitMQConfig implements OnModuleInit {
1818 async setup ( ) {
1919 const channel = await this . rabbitMQManager . getChannel ( ) ;
2020
21- //exchange 생성
22- await channel . assertExchange ( RMQ_EXCHANGES . EMAIL , RMQ_EXCHANGE_TYPE . DIRECT ) ;
23- await channel . assertExchange (
24- RMQ_EXCHANGES . CRAWLING ,
25- RMQ_EXCHANGE_TYPE . TOPIC ,
26- ) ;
27- await channel . assertExchange (
28- RMQ_EXCHANGES . DEAD_LETTER ,
29- RMQ_EXCHANGE_TYPE . TOPIC ,
30- ) ;
21+ try {
22+ //exchange 생성
23+ await channel . assertExchange (
24+ RMQ_EXCHANGES . EMAIL ,
25+ RMQ_EXCHANGE_TYPE . DIRECT ,
26+ ) ;
27+ await channel . assertExchange (
28+ RMQ_EXCHANGES . CRAWLING ,
29+ RMQ_EXCHANGE_TYPE . TOPIC ,
30+ ) ;
31+ await channel . assertExchange (
32+ RMQ_EXCHANGES . DEAD_LETTER ,
33+ RMQ_EXCHANGE_TYPE . TOPIC ,
34+ ) ;
3135
32- // DLQ 생성
33- await channel . assertQueue ( RMQ_QUEUES . CRAWLING_FULL_DEAD_LETTER , {
34- durable : true ,
35- } ) ;
36- await channel . assertQueue ( RMQ_QUEUES . EMAIL_DEAD_LETTER , { durable : true } ) ;
36+ // DLQ 생성
37+ await channel . assertQueue ( RMQ_QUEUES . CRAWLING_FULL_DEAD_LETTER , {
38+ durable : true ,
39+ } ) ;
40+ await channel . assertQueue ( RMQ_QUEUES . EMAIL_DEAD_LETTER , {
41+ durable : true ,
42+ } ) ;
3743
38- //queue 생성
39- await channel . assertQueue ( RMQ_QUEUES . EMAIL_SEND , {
40- durable : true ,
41- deadLetterExchange : RMQ_EXCHANGES . DEAD_LETTER , // DLX 설정
42- deadLetterRoutingKey : RMQ_ROUTING_KEYS . EMAIL_DEAD_LETTER , //Routing Key 설정을 통해 DLQ 설정
43- } ) ;
44- await channel . assertQueue ( RMQ_QUEUES . CRAWLING_FULL , {
45- durable : true ,
46- deadLetterExchange : RMQ_EXCHANGES . DEAD_LETTER ,
47- deadLetterRoutingKey : RMQ_ROUTING_KEYS . CRAWLING_FULL_DEAD_LETTER ,
48- } ) ;
44+ //queue 생성
45+ await channel . assertQueue ( RMQ_QUEUES . EMAIL_SEND , {
46+ durable : true ,
47+ deadLetterExchange : RMQ_EXCHANGES . DEAD_LETTER ,
48+ deadLetterRoutingKey : RMQ_ROUTING_KEYS . EMAIL_DEAD_LETTER ,
49+ } ) ;
50+ await channel . assertQueue ( RMQ_QUEUES . CRAWLING_FULL , {
51+ durable : true ,
52+ deadLetterExchange : RMQ_EXCHANGES . DEAD_LETTER ,
53+ deadLetterRoutingKey : RMQ_ROUTING_KEYS . CRAWLING_FULL_DEAD_LETTER ,
54+ } ) ;
4955
50- // DLQ 바인딩
51- await channel . bindQueue (
52- RMQ_QUEUES . EMAIL_DEAD_LETTER ,
53- RMQ_EXCHANGES . DEAD_LETTER ,
54- RMQ_ROUTING_KEYS . EMAIL_DEAD_LETTER ,
55- ) ;
56- await channel . bindQueue (
57- RMQ_QUEUES . CRAWLING_FULL_DEAD_LETTER ,
58- RMQ_EXCHANGES . DEAD_LETTER ,
59- RMQ_ROUTING_KEYS . CRAWLING_FULL_DEAD_LETTER ,
60- ) ;
61- // queue 바인딩
62- await channel . bindQueue (
63- RMQ_QUEUES . EMAIL_SEND ,
64- RMQ_EXCHANGES . EMAIL ,
65- RMQ_ROUTING_KEYS . EMAIL_SEND ,
66- ) ;
67- await channel . bindQueue (
68- RMQ_QUEUES . CRAWLING_FULL ,
69- RMQ_EXCHANGES . CRAWLING ,
70- RMQ_ROUTING_KEYS . CRAWLING_FULL ,
71- ) ;
56+ // DLQ 바인딩
57+ await channel . bindQueue (
58+ RMQ_QUEUES . EMAIL_DEAD_LETTER ,
59+ RMQ_EXCHANGES . DEAD_LETTER ,
60+ RMQ_ROUTING_KEYS . EMAIL_DEAD_LETTER ,
61+ ) ;
62+ await channel . bindQueue (
63+ RMQ_QUEUES . CRAWLING_FULL_DEAD_LETTER ,
64+ RMQ_EXCHANGES . DEAD_LETTER ,
65+ RMQ_ROUTING_KEYS . CRAWLING_FULL_DEAD_LETTER ,
66+ ) ;
67+
68+ // queue 바인딩
69+ await channel . bindQueue (
70+ RMQ_QUEUES . EMAIL_SEND ,
71+ RMQ_EXCHANGES . EMAIL ,
72+ RMQ_ROUTING_KEYS . EMAIL_SEND ,
73+ ) ;
74+ await channel . bindQueue (
75+ RMQ_QUEUES . CRAWLING_FULL ,
76+ RMQ_EXCHANGES . CRAWLING ,
77+ RMQ_ROUTING_KEYS . CRAWLING_FULL ,
78+ ) ;
79+ } catch ( error ) {
80+ throw new Error ( `RabbitMQ 설정 초기화 실패: ${ error . message } ` ) ;
81+ }
7282 }
7383}
0 commit comments