added queue binding

alpha v1.0.9
alex 2023-01-07 21:13:54 +01:00
parent 1e6f57717a
commit 3d630f3d77
1 changed files with 25 additions and 2 deletions

View File

@ -62,6 +62,7 @@ type QueueSettings struct {
Arguments amqp.Table
QueuePublishSettings QueuePublishSettings
QueueConsumeSettings QueueConsumeSettings
QueueBindSettings QueueBindSettings
}
type QueuePublishSettings struct {
@ -77,7 +78,15 @@ type QueueConsumeSettings struct {
Exclusive bool
NoLocal bool
NoWait bool
Args amqp.Table
Arguments amqp.Table
}
type QueueBindSettings struct {
QueueName string
RoutingKey string
Exchange string
NoWait bool
Arguments amqp.Table
}
type Client struct {
@ -230,6 +239,20 @@ func (client *Client) init(conn *amqp.Connection) error {
client.AssignedQueueName = q.Name
if client.queueSettings.QueueBindSettings.QueueName != "" {
err = ch.QueueBind(
client.queueSettings.QueueBindSettings.QueueName,
client.queueSettings.QueueBindSettings.RoutingKey,
client.queueSettings.QueueBindSettings.Exchange,
client.queueSettings.QueueBindSettings.NoWait,
client.queueSettings.QueueBindSettings.Arguments,
)
if err != nil {
return err
}
}
client.changeChannel(ch)
}
@ -363,7 +386,7 @@ func (client *Client) ConsumeQueueMessages() (<-chan amqp.Delivery, error) {
client.queueSettings.QueueConsumeSettings.Exclusive,
client.queueSettings.QueueConsumeSettings.NoLocal,
client.queueSettings.QueueConsumeSettings.NoWait,
client.queueSettings.QueueConsumeSettings.Args,
client.queueSettings.QueueConsumeSettings.Arguments,
)
}