Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "os"
- "log"
- "strconv"
- "time"
- "math/rand"
- "github.com/kr/beanstalk"
- )
- var conn, _ = beanstalk.Dial("tcp", "127.0.0.1:11300")
- func generateLinks(count int) [][]byte {
- var links [][]byte
- for _, value := range rand.Perm(count) {
- links = append(links, []byte("<a href=\"http://domain.com/" + strconv.Itoa(value) + "\">" + time.Now().String() + "</a>"))
- }
- return links
- }
- func main() {
- start := time.Now()
- var err error
- var links_count, pause_arg int
- if pause_arg, err = strconv.Atoi(os.Args[2]); err != nil {
- log.Print(err)
- return
- }
- pause := time.Duration(pause_arg) * time.Millisecond
- tube := beanstalk.Tube{conn, "yandex"}
- if links_count, err = strconv.Atoi(os.Args[1]); err != nil {
- log.Print(err)
- return;
- }
- links := generateLinks(links_count)
- for _, value := range links {
- pri := uint32(rand.Int31n(10000) + 1024)
- if _, err = tube.Put(value, pri, 0, 0); err != nil {
- log.Print(err)
- continue
- }
- time.Sleep(pause)
- }
- end := time.Now()
- duration := float32(end.Sub(start)) / 1e+09
- log.Print("Added ", links_count, " in ", duration, "sec = ", float32(links_count) / duration , " req/sec with interval ", pause)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement