package main import ( "encoding/json" "time" log "github.com/Sirupsen/logrus" "github.com/kr/beanstalk" ) // beanstalkd, the message queue type Queue struct { Conn *beanstalk.Conn Tube *beanstalk.Tube } func (app *Queue) newBeanstalkd() error { //conn, err := beanstalk.Dial("tcp", "192.168.122.1:11300") conn, err := beanstalk.Dial("tcp", "127.0.0.1:11300") if err != nil { return err } app.Conn = conn app.Tube = &beanstalk.Tube{conn, "gospelchor"} return nil } func (app *Queue) sendMessage() error { msg, err := json.Marshal(true) if err != nil { return err } _, err = app.Tube.Put(msg, 1, 1, time.Minute) if err != nil { return err } return nil } func main() { app := Queue{} err := app.newBeanstalkd() if err != nil { log.WithFields( log.Fields{ "error": err, }, ).Fatal("cannot connect to beanstalkd") } // closes the connection to the beanstalkd server on exit defer func() { app.Conn.Close() }() if err := app.sendMessage(); err != nil { app.Conn.Close() log.WithFields( log.Fields{ "error": err, }, ).Fatal("sending message to beanstalkd failed") } }