wagslane / go-rabbitmq

A wrapper of streadway/amqp that provides reconnection logic and sane defaults
https://blog.boot.dev/golang/connecting-to-rabbitmq-in-golang-easy/
MIT License
752 stars 126 forks source link

error on ack #133

Closed parsibox closed 1 year ago

parsibox commented 1 year ago

hi i get this error

 gorabbit ERROR: can't ack message: Exception (504) Reason: "channel/connection is not open"
consumer, err := rabbitmq.NewConsumer(
        conn,
        func(d rabbitmq.Delivery) rabbitmq.Action {

            var message Message
            Unmarshalerr := json.Unmarshal(d.Body, &message)
            if Unmarshalerr != nil {
                logger.Info("Failed to unmarshal message: %v", Unmarshalerr)
                return rabbitmq.NackDiscard
            }

            if message.Table == "" {
                fmt.Printf("Error: Table is emoty ")
                return rabbitmq.NackDiscard
            }

            var db_state int
            switch message.State {
            case "1":
                db_state = 1
            case "2":
                db_state = 2
            case "8":
                db_state = 8
            case "16":
                db_state = 5
            case "32", "34":
                db_state = 12

            default:
                db_state = -1 // Or some other default value
            }

            MyqueryErr := updateQuery(message.Table, message.SmscID, db_state, message.SmsID)
            if MyqueryErr == nil {
                return rabbitmq.Ack
            }
            return rabbitmq.NackRequeue
        },
        queue_name,
        rabbitmq.WithConsumerOptionsQueueDurable,
        rabbitmq.WithConsumerOptionsConcurrency(30),
        rabbitmq.WithConsumerOptionsQOSPrefetch(30),
    )
wagslane commented 1 year ago

Not enough info here to be actionable. It looks like you're having issues regarding a connection