Advertisement
Guest User

Untitled

a guest
May 23rd, 2018
730
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 1.38 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "os"
  5.     "log"
  6.     "strconv"
  7.     "time"
  8.     "math/rand"
  9.     "github.com/kr/beanstalk"
  10. )
  11.  
  12. var conn, _ = beanstalk.Dial("tcp", "127.0.0.1:11300")
  13.  
  14. func generateLinks(count int) [][]byte {
  15.     var links [][]byte
  16.     for _, value := range rand.Perm(count) {
  17.         links = append(links, []byte("<a href=\"http://domain.com/" + strconv.Itoa(value) + "\">" + time.Now().String() + "</a>"))
  18.     }
  19.  
  20.     return links
  21. }
  22.  
  23. func main() {
  24.     start := time.Now()
  25.     var err error
  26.     var links_count, pause_arg int
  27.  
  28.     if pause_arg, err = strconv.Atoi(os.Args[2]); err != nil {
  29.         log.Print(err)
  30.         return
  31.     }
  32.  
  33.     pause := time.Duration(pause_arg) * time.Millisecond
  34.  
  35.     tube := beanstalk.Tube{conn, "yandex"}
  36.  
  37.     if links_count, err = strconv.Atoi(os.Args[1]); err != nil {
  38.         log.Print(err)
  39.         return;
  40.     }
  41.        
  42.     links := generateLinks(links_count)
  43.    
  44.     for _, value := range links {
  45.  
  46.         pri := uint32(rand.Int31n(10000) + 1024)
  47.  
  48.         if _, err = tube.Put(value, pri, 0, 0); err != nil {
  49.             log.Print(err)
  50.             continue
  51.         }
  52.  
  53.         time.Sleep(pause)
  54.     }
  55.  
  56.     end := time.Now()
  57.     duration := float32(end.Sub(start)) / 1e+09
  58.  
  59.     log.Print("Added ", links_count, " in ", duration, "sec = ", float32(links_count) / duration , " req/sec with interval ", pause)
  60.    
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement