Przeglądaj źródła

[add] facebookgo를 이용하여 nodeManager에 의존성 주입 진행(facebookgo 적용 테스트.)

master
kidjung 4 lat temu
rodzic
commit
62793fb96a
1 zmienionych plików z 21 dodań i 3 usunięć
  1. 21
    3
      src/broker/modules/init.go

+ 21
- 3
src/broker/modules/init.go Wyświetl plik

@@ -4,6 +4,7 @@ import (
4 4
 	"encoding/json"
5 5
 	"errors"
6 6
 	"fmt"
7
+	"github.com/facebookgo/inject"
7 8
 	"log"
8 9
 	"net"
9 10
 	"net/rpc"
@@ -27,7 +28,7 @@ type secure_manager struct{}
27 28
 
28 29
 type Moscato struct {
29 30
 	queue               MsgQueue
30
-	MicroServiceManager NodeManager
31
+	MicroServiceManager NodeManager `inject:""`
31 32
 	match_mng           match_manager
32 33
 	secure_mng          secure_manager
33 34
 }
@@ -191,15 +192,32 @@ func (moscato *Moscato) Send2MS(ipaddress string, msg MsgUnit) {
191 192
 }
192 193
 
193 194
 func (moscato *Moscato) Run() {
195
+
196
+	var graph inject.Graph
197
+
198
+	err := graph.Provide(
199
+		&inject.Object{Value: NewMStable()},
200
+		&inject.Object{Value: moscato})
201
+	if err != nil {
202
+		fmt.Println(err)
203
+		return
204
+	}
205
+
206
+	err = graph.Populate()
207
+	if err != nil {
208
+		fmt.Println(err)
209
+		return
210
+	}
211
+
194 212
 	//모스카토 구조체 변수 초기화
195 213
 	receiver := Receiver{moscato: moscato}
196
-	err := moscato.queue.queue_init()
214
+	err = moscato.queue.queue_init()
197 215
 	if err != nil {
198 216
 		fmt.Println(err)
199 217
 		return
200 218
 	}
201 219
 
202
-	moscato.MicroServiceManager = NewMStable()
220
+	//moscato.MicroServiceManager = NewMStable()
203 221
 
204 222
 	//go routine -> matching 동작
205 223
 	go moscato.match_mng.matching(&moscato.queue)

Ładowanie…
Anuluj
Zapisz