-
Notifications
You must be signed in to change notification settings - Fork 0
/
config.go
135 lines (122 loc) · 2.55 KB
/
config.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
package rabbitmq
import (
"github.com/streadway/amqp"
"time"
)
type Config struct {
Host string
Port string
User string
Password string
ReConnect bool
ReconnectTimeOut time.Duration
}
type QueueConfig struct {
Name string
Durable bool
AutoDelete bool
Exclusive bool
NoWait bool
Args amqp.Table
}
type ExchangeConfig struct {
Name string
Type string
Durable bool
AutoDelete bool
Internal bool
NoWait bool
Args amqp.Table
}
type QueueBindConfig struct {
QueueName string
ExchangeName string
RoutingKey string
NoWait bool
Args amqp.Table
}
type ConsumeConfig struct {
Queue string
Consumer string
AutoAck bool
Exclusive bool
NoLocal bool
NoWait bool
Args amqp.Table
PrefetchCount int
}
func NewManualAckConsumeConfig(name string, consumer string) *ConsumeConfig {
return &ConsumeConfig{
Queue: name,
Consumer: consumer,
AutoAck: false,
NoLocal: false,
Exclusive: false,
NoWait: false,
Args: nil,
PrefetchCount: 0,
}
}
func NewAutoAckConsumeConfig(name string, consumer string) *ConsumeConfig {
return &ConsumeConfig{
Queue: name,
Consumer: consumer,
AutoAck: true,
NoLocal: false,
Exclusive: false,
NoWait: false,
Args: nil,
PrefetchCount: 0,
}
}
func NewDurableQueueConfig(name string) *QueueConfig {
return &QueueConfig{
Name: name,
Durable: true,
AutoDelete: false,
Exclusive: false,
NoWait: false,
Args: nil,
}
}
func NewTransientQueueConfig(name string) *QueueConfig {
return &QueueConfig{
Name: name,
Durable: false,
AutoDelete: false,
Exclusive: false,
NoWait: false,
Args: nil,
}
}
func NewDurableExchangeConfig(name, typeName string) *ExchangeConfig {
return &ExchangeConfig{
Name: name,
Type: typeName,
Durable: true,
AutoDelete: false,
Internal: false,
NoWait: false,
Args: nil,
}
}
func NewTransientExchangeConfig(name, typeName string) *ExchangeConfig {
return &ExchangeConfig{
Name: name,
Type: typeName,
Durable: false,
AutoDelete: false,
Internal: false,
NoWait: false,
Args: nil,
}
}
func NewQueueBindConfig(queueName, exchangeName string) *QueueBindConfig {
return &QueueBindConfig{
QueueName: queueName,
ExchangeName: exchangeName,
RoutingKey: "",
NoWait: false,
Args: nil,
}
}