Refactor tutorial 2

This commit is contained in:
Michael Klishin 2013-10-17 22:44:55 +04:00
parent fc0dc7f6e4
commit b87d0c966b
2 changed files with 37 additions and 41 deletions

View File

@ -4,22 +4,23 @@ import (
"github.com/streadway/amqp" "github.com/streadway/amqp"
"log" "log"
"os" "os"
"fmt"
) )
func failOnError(err error, msg string) {
if err != nil {
log.Fatalf("%s: %s", msg, err)
panic(fmt.Sprintf("%s: %s", msg, err))
}
}
func main() { func main() {
conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/") conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/")
if err != nil { failOnError(err, "Failed to connect to RabbitMQ")
log.Fatalf("Dial: %s", err)
return
}
defer conn.Close() defer conn.Close()
ch, err := conn.Channel() ch, err := conn.Channel()
if err != nil { failOnError(err, "Failed to open a channel")
log.Fatalf("Channel: %s", err)
return
}
defer ch.Close() defer ch.Close()
err = ch.ExchangeDeclare( err = ch.ExchangeDeclare(
@ -31,18 +32,9 @@ func main() {
false, // noWait false, // noWait
nil, // arguments nil, // arguments
) )
if err != nil { failOnError(err, "Failed to declare an exchange")
log.Fatalf("Exchange Declare: %s", err)
return
}
var body string body := bodyFrom(os.Args)
if os.Args[1] == "" {
body = "hello"
} else {
body = os.Args[1]
}
err = ch.Publish( err = ch.Publish(
"logs", // exchange "logs", // exchange
"", // routing key "", // routing key
@ -53,11 +45,20 @@ func main() {
Body: []byte(body), Body: []byte(body),
}) })
if err != nil { failOnError(err, "Failed to publish a message")
log.Fatalf("Exchange Publish: %s", err)
return
}
log.Printf(" [x] Sent %s", body) log.Printf(" [x] Sent %s", body)
os.Exit(0) os.Exit(0)
} }
func bodyFrom(args []string) string {
var body string
if (len(args) < 1) || os.Args[1] == "" {
body = "hello"
} else {
body = os.Args[1]
}
return body
}

View File

@ -4,22 +4,23 @@ import (
"github.com/streadway/amqp" "github.com/streadway/amqp"
"log" "log"
"os" "os"
"fmt"
) )
func failOnError(err error, msg string) {
if err != nil {
log.Fatalf("%s: %s", msg, err)
panic(fmt.Sprintf("%s: %s", msg, err))
}
}
func main() { func main() {
conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/") conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/")
if err != nil { failOnError(err, "Failed to connect to RabbitMQ")
log.Fatalf("Dial: %s", err)
return
}
defer conn.Close() defer conn.Close()
ch, err := conn.Channel() ch, err := conn.Channel()
if err != nil { failOnError(err, "Failed to open a channel")
log.Fatalf("Channel: %s", err)
return
}
defer ch.Close() defer ch.Close()
q, err := ch.QueueDeclare( q, err := ch.QueueDeclare(
@ -30,20 +31,14 @@ func main() {
false, // noWait false, // noWait
nil, // arguments nil, // arguments
) )
if err != nil { failOnError(err, "Failed to declare a queue")
log.Fatalf("Queue Declare: %s", err)
return
}
err = ch.QueueBind( err = ch.QueueBind(
q.Name, // queue name q.Name, // queue name
"", // routing key "", // routing key
"logs", // exchange "logs", // exchange
false, false,
nil) nil)
if err != nil { failOnError(err, "Failed to bind a queue")
log.Fatalf("Queue Bind: %s", err)
return
}
msgs, err := ch.Consume(q.Name, "", true, false, false, false, nil) msgs, err := ch.Consume(q.Name, "", true, false, false, false, nil)