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() }