2017-09-14 5 views
0
  1. Ich habe Fehler in Zeile: que := queue.New(conn, "foobar") : Fehler eval: 1: Versuch zu indizieren globale 'Warteschlange' (ein Nullwert) (0x20)tarantool Warteschlange Versuch zu indizieren global 'Warteschlange'

  2. Config file: (wenn ich box.once lösche, dann ist erros tube vorhanden) Wie korrigiere ich init user und tube in config, ohne Fehler 'user exist exist'?

`

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() 
} 

`

Antwort

0

local von Entfernen local queue = require('queue') sollte so Ich habe das Problem.

Verwandte Themen