go-rabbitmq-study/queue/queue.go

34 lines
835 B
Go
Raw Permalink Normal View History

2022-11-20 16:37:13 +08:00
package queue
import (
"github.com/streadway/amqp"
"log"
"skcks.cn/study/rabbitmq/types"
)
func DeclareDirect(channel *amqp.Channel, name string, options ...types.DeclareOptionFunc) error {
defaultOption := &types.DeclareOption{
Name: name,
Durable: true,
AutoDelete: false, //auto-deleted
Internal: false, //internal
NoWait: false, //noWait
Args: nil,
}
option := types.MergeExchangeOptionsWithDefault(defaultOption, options)
// 声明一个queue
if _, err := channel.QueueDeclare(
option.Name, // name
option.Durable, // durable
option.AutoDelete, // delete when unused
option.Exclusive, // exclusive
option.NoWait, // no-wait
option.Args, // arguments
); err != nil {
log.Println("Failed to declare a queue:", err.Error())
return err
}
return nil
}