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 }