123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package rabbitMQ
- import (
- "github.com/streadway/amqp"
- "time"
- )
- func NewProducter(exchange Exchange) (*Producter, error) {
- conn, err := NewConnect(exchange.Dns)
- if err != nil {
- return nil, err
- }
- channel, err := conn.Channel()
- if err != nil {
- _ = conn.Close()
- return nil, err
- }
- producter := &Producter{
- conn: conn,
- channel: channel,
- Exchange: exchange,
- }
- _ = producter.channel.ExchangeDeclare(producter.Exchange.Name, producter.Exchange.Type, true, false, false, false, nil)
- return producter, nil
- }
- // Publisher 发布
- func (p *Producter) Publisher(queueName string, msg []byte) error {
- _, _ = p.channel.QueueDeclare(queueName, true, false, false, false, nil)
- return p.channel.Publish("", queueName, false, false, amqp.Publishing{
- ContentType: "text/plain",
- DeliveryMode: 2,
- Timestamp: time.Now(),
- Body: msg,
- })
- }
- // DelayPublisher 延时发布
- func (p *Producter) DelayPublisher() error {
- return nil
- }
- func (p *Producter) Close() {
- p.channel.Close()
- p.conn.Close()
- }
|