반업주부의 일상 배움사
[Golang] 웹사이트 헬스 체크 :: Website Health Check 본문
반응형
노마드 강의 듣고 기억을 더듬어 코딩했어요.
그래서 코드가 조금 달라요.
일단 고루틴을 안 썼더니 평균 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초가 나오네요.
영어, 중국어 공부중이신가요?
홈스쿨 교재. 한 권으로 가족 모두 할 수 있어요!
반응형
LIST
'IT 인터넷 > Golang' 카테고리의 다른 글
[Golang] echo 샘플2 (0) | 2022.05.15 |
---|---|
[Golang] echo 샘플 (0) | 2022.05.15 |
[Golang] 텍스트 파일 읽고 랜덤 아이템 추출하기 (0) | 2022.04.29 |
[Golang] VSCode에서 실행 시 에러가 난다면... (7) | 2021.04.23 |
[Golang] 단숨에 Hello, Go World! :: 고로 고고! (0) | 2020.08.11 |
Comments