我使用此功能限制DNS服务器的响应时间
exports
问题是这个功能吃了记忆
我认为这是因为我打破了updateStatus
系统调用。
有什么方法可以避免这种情况吗? 可能是如何通过超时查询DNS服务器的其他方式?
答案 0 :(得分:1)
其dns_resolver.go
确实包含超时管理
resolver := dns_resolver.New([]string{"8.8.8.8", "8.8.4.4"})
// OR
// resolver := dns_resolver.NewFromResolvConf("resolv.conf")
// In case of i/o timeout
resolver.RetryTimes = 5
然后,您可以将所有调用包装在goroutine中,以便调用不会突然中断net.LookupHost()
。
ip, err := resolver.LookupHost("google.com")
if err != nil {
log.Fatal(err.Error())
}
log.Println(ip)
// Output [216.58.192.46]