2017-09-14 4 views
0
  1. je erreur en ligne: que := queue.New(conn, "foobar") : erreur eval: 1: tentative d'index global 'file d'attente' (valeur nulle) (0x20)tarantool file tentative d'index 'file d'attente' global

  2. Fichier de configuration: (si je supprime box.once alors le tube erros existe) Comment corriger les utilisateurs init et tube dans la configuration, sans erreur 'l'utilisateur existe déjà'?

`

box.cfg {listen=3303} 
local queue = require('queue') 
queue.start() 
queue.create_tube('foobar', 'fifottl', {if_not_exists=true}) 
box.once("init", function() 
    box.schema.user.grant('guest', 'read,write,execute', 'universe') 
end) 

`

Code

: `

func TestTarantoolQueue(t *testing.T) { 
    //opts := tarantool.Opts{User: "test", Pass: "test"} 
    opts := tarantool.Opts{} 
    conn, err := tarantool.Connect("127.0.0.1:3303", opts) 
    if err != nil { 
     t.Log("Error", err) 
     t.FailNow() 
    } 
    cfg := queue.Cfg{ 
     Temporary: true, 
     IfNotExists: true, 
     Kind: queue.FIFO_TTL, 
     Opts: queue.Opts{ 
      Ttl: 10 * time.Second, 
      Ttr: 5 * time.Second, 
      Delay: 3 * time.Second, 
      Pri: 1, 
     }, 
    } 
    que := queue.New(conn, "foobar") 
    err = que.Create(cfg) 
    if err != nil { 
     t.Log("Error", err) 
     t.FailNow() 
    } 
    task, err := que.Put("test_data") 
    if err != nil { 
     t.Log("Error", err) 
     t.FailNow() 
    } 
    fmt.Println("Task id is ", task.Id()) 
    task, err = que.Take() //blocking operation 
    if err != nil { 
     t.Log("Error", err) 
     t.FailNow() 
    } 
    fmt.Println("Data is ", task.Data()) 
    task.Ack() 
    task, err = que.Put([]int{1, 2, 3}) 
    if err != nil { 
     t.Log("Error", err) 
     t.FailNow() 
    } 
    task.Bury() 
    task, err = que.TakeTimeout(2 * time.Second) 
    if task == nil { 
     fmt.Println("Task is nil") 
    } 
    que.Drop() 
} 

`

Répondre

0

Retrait local de local queue = require('queue') devrait donc J'ai le problème.