diff options
Diffstat (limited to 'resources/mq/client/message_queue.go')
| -rw-r--r-- | resources/mq/client/message_queue.go | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/resources/mq/client/message_queue.go b/resources/mq/client/message_queue.go new file mode 100644 index 0000000..ee662b1 --- /dev/null +++ b/resources/mq/client/message_queue.go @@ -0,0 +1,68 @@ +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") + } +} |
