dataRT/data/rabbit/rabbit.go

55 lines
1.1 KiB
Go
Raw Normal View History

2025-09-19 16:17:46 +08:00
package rabbit
import (
"context"
"datart/config"
rmq "github.com/rabbitmq/rabbitmq-amqp-go-client/pkg/rabbitmqamqp"
)
2025-11-06 21:09:50 +08:00
type XQK struct {
Exchange string `json:"exchange" yaml:"exchange"`
Queue string `json:"queue" yaml:"queue"`
Key string `json:"key" yaml:"key"`
QueueCap int64 `json:"queuecap" yaml:"queuecap"`
2025-09-19 16:17:46 +08:00
}
var client *rabbitClient
func init() {
endpoints, err := genEndpoints("default")
if err != nil {
panic(err)
}
client = new(rabbitClient)
client.env = rmq.NewClusterEnvironment(endpoints)
conn, err := client.env.NewConnection(context.Background())
if err != nil {
panic(err)
}
client.conn = conn
}
2025-11-20 20:58:51 +08:00
func CloseDefault(ctx context.Context) error {
2025-09-19 16:17:46 +08:00
return client.Close(ctx)
}
2025-11-20 20:58:51 +08:00
func DefaultManagement() *rmq.AmqpManagement {
return client.Management()
}
2025-09-19 16:17:46 +08:00
func genEndpoints(tag string) ([]rmq.Endpoint, error) {
confs := config.Conf().RabbitConf(tag)
endpoints := make([]rmq.Endpoint, len(confs))
for i, conf := range confs {
var options *rmq.AmqpConnOptions
2025-11-20 20:58:51 +08:00
endpoints[i].Address = conf.GenAddress(false)
2025-09-19 16:17:46 +08:00
endpoints[i].Options = options
}
return endpoints, nil
}