summaryrefslogtreecommitdiff
path: root/resources/mq/client/message_queue.go
diff options
context:
space:
mode:
Diffstat (limited to 'resources/mq/client/message_queue.go')
-rw-r--r--resources/mq/client/message_queue.go68
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")
+ }
+}