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  }