Advertisement
Guest User

Untitled

a guest
Mar 18th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 1.43 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "fmt"
  5.     "github.com/tarantool/go-tarantool"
  6.     "gopkg.in/vmihailenco/msgpack.v2"
  7.     "log"
  8.     "net"
  9.     "net/http"
  10.     _ "net/http/pprof"
  11.     "os"
  12.     "time"
  13. )
  14.  
  15. var conn *tarantool.Connection
  16.  
  17. func main() {
  18.     var err error
  19.  
  20.     conn, err = tarantool.Connect("127.0.0.1:6300", tarantool.Opts{
  21.         RateLimit:    1000,
  22.         RLimitAction: tarantool.RLimitWait,
  23.         User:         "user",
  24.         Pass:         "secret",
  25.         Reconnect:    time.Second,
  26.     })
  27.     if err != nil {
  28.         log.Printf("can't connect to tarantool, %+v", err)
  29.         os.Exit(1)
  30.     }
  31.  
  32.     go func() {
  33.         var resp response
  34.         //var err error
  35.         for {
  36.             _ = conn.CallTyped("app.demotest", []interface{}{1}, &resp)
  37.         }
  38.  
  39.     }()
  40.  
  41.     log.Printf("listen on 2000")
  42.  
  43.     pprofListener, err := net.Listen("tcp4", "127.0.0.1:2000")
  44.  
  45.     if err != nil {
  46.         log.Printf("error create pprof listener, %v", err)
  47.         return
  48.     }
  49.  
  50.     if err := http.Serve(pprofListener, nil); err != nil {
  51.         log.Printf("error start pprof server, %v", err)
  52.     }
  53.  
  54. }
  55.  
  56. type response struct {
  57.     code int
  58. }
  59.  
  60. func (r *response) DecodeMsgpack(d *msgpack.Decoder) error {
  61.     var err error
  62.     var l int
  63.  
  64.     if l, err = d.DecodeArrayLen(); err != nil {
  65.         return err
  66.     }
  67.     if l != 1 {
  68.         return fmt.Errorf("wrong response len 1")
  69.     }
  70.     if l, err = d.DecodeArrayLen(); err != nil {
  71.         return err
  72.     }
  73.     if l != 1 {
  74.         return fmt.Errorf("wrong response len 2")
  75.     }
  76.     if r.code, err = d.DecodeInt(); err != nil {
  77.         return err
  78.     }
  79.     return nil
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement