beanstalk

beanstalk é um servidor de filas bastante estável e rápido, e o melhor de tudo, com uma API fácil de conectar com suporte a Go.

beanstalk

beanstalk é um servidor de filas bastante estável e rápido, e o melhor de tudo, com uma API fácil de conectar com suporte a Go.

instruções para instalação você encontra aqui: https://kr.github.io/beanstalkd/download.html

aurora

Aurora é um visualizador web para você gerenciar suas filas no beanstalk, escrito em go e fácil de usar, veja como instalar aqui: https://github.com/xuri/aurora

Exemplos

Enviando dados para a fila

package main

import (
    "fmt"
    "time"

    "github.com/kr/beanstalk"
)

func main() {
    c, err := beanstalk.Dial("tcp", "127.0.0.1:11300")
    if err != nil {
        fmt.Println(err)
        return
    }
    defer func() {
        err = c.Close()
        if err != nil {
            fmt.Println()
        }
    }()

    id, err := c.Put([]byte("Olá mundo!"), 1, 0, time.Duration(120)*time.Second)
    if err != nil {
        fmt.Println(err)
    }

    fmt.Println(id)
}

Recebendo dados da fila

package main

import (
    "fmt"
    "time"

    "github.com/kr/beanstalk"
)

func main() {
    c, err := beanstalk.Dial("tcp", "127.0.0.1:11300")
    if err != nil {
        fmt.Println(err)
        return
    }
    defer func() {
        err = c.Close()
        if err != nil {
            fmt.Println()
        }
    }()

    id, body, err := c.Reserve(5 * time.Second)
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(id, string(body))

    err = c.Delete(id)
    if err != nil {
        fmt.Println(err)
    }
}

Arquivos desse post: