golang의 echo를 이용해서 웹서버 만드는건 쉬운데
서버 돌려 두면 별도의 go routine으로 돌테니 어떻게 구성을 해야
IPC를 통해 받은 변수를 깨지지 않게 처리할 수 있을까?
걍 결론은.. mutex로 귀결인가?
func (s *Stats) Handle(c echo.Context) error { s.mutex.RLock() defer s.mutex.RUnlock() return c.JSON(http.StatusOK, s) } func main() { e := echo.New() // Debug mode e.Debug = true //------------------- // Custom middleware //------------------- // Stats s := NewStats() e.Use(s.Process) e.GET("/stats", s.Handle) // Endpoint to get stats // Server header e.Use(ServerHeader) // Handler e.GET("/", func(c echo.Context) error { return c.String(http.StatusOK, "Hello, World!") }) // Start server e.Logger.Fatal(e.Start(":1323")) } |
'Programming > golang' 카테고리의 다른 글
go ws server client example (0) | 2023.06.08 |
---|---|
golang waitgroup (0) | 2023.05.24 |
golang 동시성 (0) | 2023.05.24 |
golang 고루틴과 채널 (0) | 2023.05.16 |
golang switch, select (0) | 2023.05.16 |