Browse Source

Use fasthttp

renovate/configure
Yota Toyama 8 years ago
parent
commit
3cb6f83d82
  1. 20
      url_checker.go

20
url_checker.go

@ -1,34 +1,26 @@
package main package main
import ( import (
"net/http"
"sync" "sync"
"time" "time"
"github.com/valyala/fasthttp"
) )
type urlChecker struct { type urlChecker struct {
client http.Client timeout time.Duration
semaphore semaphore semaphore semaphore
} }
func newURLChecker(t time.Duration, s semaphore) urlChecker { func newURLChecker(t time.Duration, s semaphore) urlChecker {
return urlChecker{http.Client{Timeout: t}, s} return urlChecker{t, s}
} }
func (c urlChecker) Check(s string) (resultErr error) { func (c urlChecker) Check(u string) error {
c.semaphore.Request() c.semaphore.Request()
defer c.semaphore.Release() defer c.semaphore.Release()
res, err := c.client.Get(s) _, _, err := fasthttp.GetTimeout(nil, u, c.timeout)
if err != nil && res != nil {
defer func() {
if err := res.Body.Close(); err != nil {
resultErr = err
}
}()
}
return err return err
} }

Loading…
Cancel
Save