package exchange import ( "github.com/streadway/amqp" "log" "skcks.cn/study/rabbitmq/types" ) const DefaultDirectExchangeName = "direct_exchange" func DeclareDirect(channel *amqp.Channel, name string, options ...types.DeclareOptionFunc) error { defaultOption := &types.DeclareOption{ Name: name, Kind: "direct", Durable: true, AutoDelete: false, //auto-deleted Internal: false, //internal NoWait: false, //noWait Args: nil, } option := types.MergeExchangeOptionsWithDefault(defaultOption, options) // 声明 exchange if err := channel.ExchangeDeclare( option.Name, //name option.Kind, //exchangeType option.Durable, //durable option.AutoDelete, //auto-deleted option.Internal, //internal option.NoWait, //noWait option.Args, // , //arguments ); err != nil { log.Println("Failed to declare a exchange:", err.Error()) return err } return nil }