반업주부의 일상 배움사

[Golang] 웹사이트 헬스 체크 :: Website Health Check 본문

IT 인터넷/Golang

[Golang] 웹사이트 헬스 체크 :: Website Health Check

Banjubu 2021. 5. 5. 14:00
반응형

 

노마드 강의 듣고 기억을 더듬어 코딩했어요.

그래서 코드가 조금 달라요.

 

일단 고루틴을 안 썼더니 평균 3.5초가 나오네요.

package main

import (
	"fmt"
	"net/http"
	"time"
)

var urls []string = []string{
	"https://yeastudio.kr",
	"https://google.com",
	"https://naver.com",
	"https://yahoo.com",
	"https://kakao.com",
	"https://facebook.com",
	"https://twitter.com",
}

func main() {
	tm := time.Now()

	for _, v := range urls {
		res, err := checkURL(v)
		fmt.Println(res.StatusCode, err)
	}

	fmt.Println(time.Since(tm))
}

func checkURL(url string) (res *http.Response, err error) {
	res, err = http.Get(url)
	return res, err
}

 

이번엔 고루틴을 썼어요.

package main

import (
	"fmt"
	"net/http"
	"time"
)

var urls []string = []string{
	"https://yeastudio.kr",
	"https://google.com",
	"https://naver.com",
	"https://yahoo.com",
	"https://kakao.com",
	"https://facebook.com",
	"https://twitter.com",
}

type Data struct {
	res *http.Response
	err error
}

func main() {
	tm := time.Now()

	c := make(chan Data)
	for _, v := range urls {
		go checkURL(v, c)
	}

	len := len(urls)
	for i := 0; i < len; i++ {
		data := <-c
		fmt.Println(data.res.StatusCode, data.err)
	}

	fmt.Println(time.Since(tm))
}

func checkURL(url string, c chan Data) {
	res, err := http.Get(url)
	c <- Data{res: res, err: err}
}

 

평균 0.9초가 나오네요.

 

영어, 중국어 공부중이신가요?

홈스쿨 교재. 한 권으로 가족 모두 할 수 있어요!

 

한GLO 미네르바에듀 : 네이버쇼핑 스마트스토어

한글로 영어가 된다?! 한글로[한GLO]는 영어 중국어 일어 러시아어 스페인어가 됩니다!!

smartstore.naver.com

 

반응형
LIST
Comments