Refactor tutorial 2
This commit is contained in:
parent
fc0dc7f6e4
commit
b87d0c966b
@ -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
|
||||||
|
}
|
@ -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)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user