github.com/ikeikeikeike/clustertransport-base@v0.0.0-20170407113025-966c0b4729ba/bench_test.go (about) 1 package clustertransport 2 3 import ( 4 "log" 5 "testing" 6 7 "github.com/kr/pretty" 8 9 elastic "gopkg.in/olivere/elastic.v3" 10 ) 11 12 func BenchmarkRace(b *testing.B) { 13 cfg := NewConfig() 14 cfg.Cluster = &esCluster{} 15 cfg.Logger = log.Printf 16 cfg.Debug = true 17 18 ts := NewTransport(cfg, "http://127.0.0.1:9200") 19 20 fn := func() (interface{}, error) { 21 item, err := ts.Req(func(conn *Conn) (interface{}, error) { 22 client := conn.Client.(*elastic.Client) 23 24 res, _, err := client.Ping(conn.URI).Do() 25 return res, err 26 }) 27 28 return item, err 29 } 30 31 funcy := func(x int) { 32 ts.Configure(func(cfg *Config) *Config { 33 // cfg.DiscoverTick = x 34 return cfg 35 }) 36 } 37 38 x := 1 39 for 500000 > x { 40 _, err := fn() 41 42 if err != nil { 43 pretty.Println("couldnt request: ", err) 44 } 45 46 if x%97891 == 0 { 47 funcy(x) 48 } 49 x++ 50 } 51 }