Не могу отправлять сообщения от RabbitMQ с помощью Go - PullRequest
0 голосов
/ 29 декабря 2018

Я только начал читать о RabbitMQ и пытаюсь отправить большое количество сообщений в цикле for.Проблема в том, что он просто не работает.

package main

import (
    "fmt"
    "github.com/streadway/amqp"
    "strconv"
)

func main() {
    var connectionString = "amqp://guest:guest@localhost:5672/"
    conn, _ := amqp.Dial(connectionString)
    defer conn.Close()

    ch, _ := conn.Channel()
    defer ch.Close()

    q, _ := ch.QueueDeclare(
        "user_actions", // name
        true,   // durable
        false,   // delete when unused
        false,   // exclusive
        false,   // no-wait
        nil,     // arguments
    )

    for i := 0; i < 10000; i++ {
        body := "Hello from Go! " + strconv.Itoa(i)
        ch.Publish(
            "",     // exchange
            "hello", // routing key
            false,  // mandatory
            false,  // immediate
            amqp.Publishing {
                ContentType: "text/plain",
                Body:        []byte(body),
            })
        fmt.Println("Sent: "+body)
    }

}

Я даже пытался уменьшить количество итераций и даже пытался отправлять сообщения вне цикла, но это просто не работает.Что я делаю не так?

1 Ответ

0 голосов
/ 29 декабря 2018

Предоставленный код выглядит нормально, за исключением того, что вы используете обмен по умолчанию и предоставляете имя маршрута, отличное от имени вашей очереди.

Скорее всего, вы захотите использовать имя очереди в качестве имени маршрутизации.Попробуйте заменить hello на user_actions в функции ch.Publish.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...