8000 Improved, fixed bug, and cleaned up code for Go. · falcon677/rabbitmq-tutorials@371fc3b · GitHub
[go: up one dir, main page]

Skip to content

Commit 371fc3b

Browse files
committed
Improved, fixed bug, and cleaned up code for Go.
1 parent 99f02f8 commit 371fc3b

File tree

10 files changed

+164
-151
lines changed

10 files changed

+164
-151
lines changed

go/emit_log.go

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
package main
22

33
import (
4-
"github.com/streadway/amqp"
4+
"fmt"
55
"log"
66
"os"
7-
"fmt"
7+
8+
"github.com/streadway/amqp"
89
)
910

1011
func failOnError(err error, msg string) {
@@ -24,13 +25,13 @@ func main() {
2425
defer ch.Close()
2526

2627
err = ch.ExchangeDeclare(
27-
"logs", // name
28-
"fanout", // type
29-
true, // durable
30-
false, // auto-deleted
31-
false, // internal
32-
false, // noWait
33-
nil, // arguments
28+
"logs", // name
29+
"fanout", // type
30+
true, // durable
31+
false, // auto-deleted
32+
false, // internal
33+
false, // no-wait
34+
nil, // arguments
3435
)
3536
failOnError(err, "Failed to declare an exchange")
3637

@@ -41,24 +42,20 @@ func main() {
4142
false, // mandatory
4243
false, // immediate
4344
amqp.Publishing{
44-
ContentType: "text/plain",
45-
Body: []byte(body),
45+
ContentType: "text/plain",
46+
Body: []byte(body),
4647
})
47-
4848
failOnError(err, "Failed to publish a message")
49-
log.Printf(" [x] Sent %s", body)
5049

51-
os.Exit(0)
50+
log.Printf(" [x] Sent %s", body)
5251
}
5352

5453
func bodyFrom(args []string) string {
5554
var body string
56-
if (len(args) < 1) || os.Args[1] == "" {
55+
if (len(args) < 2) || os.Args[1] == "" {
5756
body = "hello"
5857
} else {
5958
body = os.Args[1]
60-
6159
}
62-
6360
return body
64-
}
61+
}

go/emit_log_direct.go

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package main
22

33
import (
4-
"github.com/streadway/amqp"
4+
"fmt"
55
"log"
66
"os"
7-
"fmt"
87
"strings"
8+
9+
"github.com/streadway/amqp"
910
)
1011

1112
func failOnError(err error, msg string) {
@@ -30,7 +31,7 @@ func main() {
3031
true, // durable
3132
false, // auto-deleted
3233
false, // internal
33-
false, // noWait
34+
false, // no-wait
3435
nil, // arguments
3536
)
3637
failOnError(err, "Failed to declare an exchange")
@@ -39,40 +40,33 @@ func main() {
3940
err = ch.Publish(
4041
"logs_direct", // exchange
4142
severityFrom(os.Args), // routing key
42-
false, // mandatory
43-
false, // immediate
43+
false, // mandatory
44+
false, // immediate
4445
amqp.Publishing{
45-
ContentType: "text/plain",
46-
Body: []byte(body),
46+
ContentType: "text/plain",
47+
Body: []byte(body),
4748
})
48-
4949
failOnError(err, "Failed to publish a message")
50-
log.Printf(" [x] Sent %s", body)
5150

52-
os.Exit(0)
51+
log.Printf(" [x] Sent %s", body)
5352
}
5453

5554
func bodyFrom(args []string) string {
5655
var s string
57-
if (len(args) < 2) || os.Args[2] == "" {
56+
if (len(args) < 3) || os.Args[2] == "" {
5857
s = "hello"
5958
} else {
60-
s = strings.Join(args[1:], " ")
61-
59+
s = strings.Join(args[2:], " ")
6260
}
63-
6461
return s
6562
}
6663

6764
func severityFrom(args []string) string {
6865
var s string
69-
70-
if (len(args) < 1) || os.Args[1] == "" {
66+
if (len(args) < 2) || os.Args[1] == "" {
7167
s = "info"
7268
} else {
7369
s = os.Args[1]
74-
7570
}
76-
7771
return s
78-
}
72+
}

go/emit_log_topic.go

Lines changed: 18 additions & 24 deletions
566
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package main
22

33
import (
4-
"github.com/streadway/amqp"
4+
"fmt"
55
"log"
66
"os"
7-
"fmt"
87
"strings"
8+
9+
"github.com/streadway/amqp"
910
)
1011

1112
func failOnError(err error, msg string) {
@@ -27,52 +28,45 @@ func main() {
2728
err = ch.ExchangeDeclare(
2829
"logs_topic", // name
2930
"topic", // type
30-
true, // durable
31-
false, // auto-deleted
32-
false, // internal
33-
false, // noWait
34-
nil, // arguments
31+
true, // durable
32+
false, // auto-deleted
33+
false, // internal
34+
false, // no-wait
35+
nil, // arguments
3536
)
3637
failOnError(err, "Failed to declare an exchange")
3738

3839
body := bodyFrom(os.Args)
3940
err = ch.Publish(
40-
"logs_topic", // exchange
41+
"logs_topic", // exchange
4142
severityFrom(os.Args), // routing key
42-
false, // mandatory
43-
false, // immediate
43+
false, // mandatory
44+
false, // immediate
4445
amqp.Publishing{
45-
ContentType: "text/plain",
46-
Body: []byte(body),
46+
ContentType: "text/plain",
47+
Body: []byte(body),
4748
})
48-
4949
failOnError(err, "Failed to publish a message")
50 10662 -
log.Printf(" [x] Sent %s", body)
5150

52-
os.Exit(0)
51+
log.Printf(" [x] Sent %s", body)
5352
}
5453

5554
func bodyFrom(args []string) string {
5655
var s string
57-
if (len(args) < 2) || os.Args[2] == "" {
56+
if (len(args) < 3) || os.Args[2] == "" {
5857
s = "hello"
5958
} else {
60-
s = strings.Join(args[1:], " ")
61-
59+
s = strings.Join(args[2:], " ")
6260
}
63-
6461
return s
6562
}
6663

6764
func severityFrom(args []string) string {
6865
var s string
69-
70-
if (len(args) < 1) || os.Args[1] == "" {
66+
if (len(args) < 2) || os.Args[1] == "" {
7167
s = "anonymous.info"
7268
} else {
7369
s = os.Args[1]
74-
7570
}
76-
7771
return s
78-
}
72+
}

go/new_task.go

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package main
22

33
import (
4-
"github.com/streadway/amqp"
5-
"log"
6-
"os"
74
"fmt"
5+
"log"
86
"strings"
7+
8+
"github.com/streadway/amqp"
99
)
1010

1111
func failOnError(err error, msg string) {
@@ -30,24 +30,20 @@ func main() {
3030
"task_queue", // routing key
3131
false, // mandatory
3232
false,
33-
amqp.Publishing {
34-
DeliveryMode: amqp.Persistent,
35-
ContentType: "text/plain",
36-
Body: []byte(body),
33+
amqp.Publishing{
34+
DeliveryMode: amqp.Persistent,
35+
ContentType: "text/plain",
36+
Body: []byte(body),
3737
})
3838
failOnError(err, "Failed to publish a message")
39-
40-
os.Exit(0)
4139
}
4240

4341
func bodyFrom(args []string) string {
4442
var s string
45-
if (len(args) < 2) || os.Args[2] == "" {
43+
if (len(args) < 2) || os.Args[1] == "" {
4644
s = "hello"
4745
} else {
4846
s = strings.Join(args[1:], " ")
49-
5047
}
51-
5248
return s
5349
}

go/receive.go

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package main
22

33
import (
4-
"github.com/streadway/amqp"
5-
"log"
6-
"os"
74
"fmt"
5+
"log"
6+
7+
"github.com/streadway/amqp"
88
)
99

1010
func failOnError(err error, msg string) {
@@ -21,34 +21,37 @@ func main() {
2121

2222
ch, err := conn.Channel()
2323
failOnError(err, "Failed to open a channel")
24-
2524
defer ch.Close()
2625

2726
q, err := ch.QueueDeclare(
2827
"hello", // name
2928
false, // durable
3029
false, // delete when usused
3130
false, // exclusive
32-
false, // noWait
31+
false, // no-wait
3332
nil, // arguments
3433
)
3534
failOnError(err, "Failed to declare a queue")
3635

37-
msgs, err := ch.Consume(q.Name, "", true, false, false, false, nil)
36+
msgs, err := ch.Consume(
37+
q.Name, // queue
38+
"", // consumer
39+
true, // auto-ack
40+
false, // exclusive
41+
false, // no-local
42+
false, // no-wait
43+
nil, // args
44+
)
3845
failOnError(err, "Failed to register a consumer")
3946

40-
done := make(chan bool)
47+
forever := make(chan bool)
4148

4249
go func() {
4350
for d := range msgs {
4451
log.Printf("Received a message: %s", d.Body)
45-
done <- true
4652
}
4753
}()
4854

4955
log.Printf(" [*] Waiting for messages. To exit press CTRL+C")
50-
<-done
51-
log.Printf("Done")
52-
53-
os.Exit(0)
56+
<-forever
5457
}

go/receive_logs.go

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package main
22

33
import (
4-
"github.com/streadway/amqp"
5-
"log"
6-
"os"
74
"fmt"
5+
"log"
6+
7+
"github.com/streadway/amqp"
88
)
99

1010
func failOnError(err error, msg string) {
@@ -27,11 +27,12 @@ func main() {
2727
"", // name
2828
false, // durable
2929
false, // delete when usused
30-
false, // exclusive
31-
false, // noWait
30+
true, // exclusive
31+
false, // no-wait
3232
nil, // arguments
3333
)
3434
failOnError(err, "Failed to declare a queue")
35+
3536
err = ch.QueueBind(
3637
q.Name, // queue name
3738
"", // routing key
@@ -40,20 +41,25 @@ func main() {
4041
nil)
4142
failOnError(err, "Failed to bind a queue")
4243

43-
msgs, err := ch.Consume(q.Name, "", true, false, false, false, nil)
44+
msgs, err := ch.Consume(
45+
q.Name, // queue
46+
"", // consumer
47+
true, // auto-ack
48+
false, // exclusive
49+
false, // no-local
50+
false, // no-wait
51+
nil, // args
52+
)
53+
failOnError(err, "Failed to register a consumer")
4454

45-
done := make(chan bool)
55+
forever := make(chan bool)
4656

4757
go func() {
4858
for d := range msgs {
4959
log.Printf(" [x] %s", d.Body)
50-
done <- true
5160
}
5261
}()
5362

5463
log.Printf(" [*] Waiting for logs. To exit press CTRL+C")
55-
<-done
56-
log.Printf("Done")
57-
58-
os.Exit(0)
64+
<-forever
5965
}

0 commit comments

Comments
 (0)
0