github.com/smugmug/godynamo@v0.0.0-20151122084750-7913028f6623/keepalive/keepalive.go (about) 1 package keepalive 2 3 import ( 4 auth_v4 "github.com/smugmug/godynamo/auth_v4" // to get the Client 5 "log" 6 "time" 7 ) 8 9 // dial the keep alive domains to establish a conn 10 func dialConns(keepAliveUrls []string) error { 11 var e error 12 for _, u := range keepAliveUrls { 13 _, err := auth_v4.Client.Head(u) 14 if err != nil { 15 e = err 16 } else { 17 // log.Printf("conn %v",u) // uncomment to see keepalives 18 } 19 } 20 return e 21 } 22 23 // KeepAlive can make periodic HEAD requests to our AWS endpoint url to keep conns alive. 24 // Should be run as a goroutine: go KeepAlive(..) 25 func KeepAlive(keepAliveUrls []string) { 26 for { 27 select { 28 case <-time.After(5 * time.Second): 29 dial_err := dialConns(keepAliveUrls) 30 if dial_err != nil { 31 log.Printf("keepalive.KeepAlive: dial fail:%s", dial_err.Error()) 32 } 33 } 34 } 35 }