Created
June 7, 2018 04:34
-
-
Save zono/56f859e520956bc533fcda1b295127fa to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"encoding/json" | |
"io/ioutil" | |
"log" | |
"net/http" | |
"strings" | |
"time" | |
"sync" | |
) | |
type Args struct { | |
X, Y int | |
} | |
func Call(address string, method string, id interface{}, params []interface{})(map[string]interface{}, error){ | |
data, err := json.Marshal(map[string]interface{}{ | |
"method": method, | |
"id": id, | |
"params": params, | |
}) | |
if err != nil { | |
log.Println("Marshal: %v", err) | |
return nil, err | |
} | |
resp, err := http.Post(address, | |
"application/json", strings.NewReader(string(data))) | |
if err != nil { | |
log.Println("Post: %v", err) | |
return nil, err | |
} | |
defer resp.Body.Close() | |
body, err := ioutil.ReadAll(resp.Body) | |
if err != nil { | |
log.Println("ReadAll: %v", err) | |
return nil, err | |
} | |
result := make(map[string]interface{}) | |
err = json.Unmarshal(body, &result) | |
if err != nil { | |
//log.Fatalf("Unmarshal: %v", err) | |
return nil, err | |
} | |
//log.Println(result) | |
return result, nil | |
} | |
func main() { | |
maxConnection := make(chan bool,2) | |
wg := &sync.WaitGroup{} | |
count := 0 | |
start := time.Now() | |
for maxRequest := 0; maxRequest < 2; maxRequest ++{ | |
wg.Add(1) | |
maxConnection <- true | |
go func() { | |
defer wg.Done() | |
//_, err:=Call("http://xxx:xxx@127.0.0.1:8332", "searchrawtransactions", 1, []interface{}{"1PsW4JjripMZ5rZY4KnsvCZRU2hhejfBxm"}) | |
_, err:=Call("http://xxx:xxx@127.0.0.1:4000", "search_raw_transactions", 1, []interface{}{"address", "1PsW4JjripMZ5rZY4KnsvCZRU2hhejfBxm"}) | |
if err!=nil{ | |
//log.Fatalf("Err: %v", err) | |
} | |
//log.Println(res) | |
count++ | |
<-maxConnection | |
}() | |
} | |
wg.Wait() | |
end := time.Now() | |
log.Printf("%d count\n", count) | |
log.Printf("%f sec\n",(end.Sub(start)).Seconds()) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment