<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ### 簡單模式 一個生產者,一個消費者. ![](https://img.kancloud.cn/71/db/71db67e60d0605b11f14bfd71d322f64_920x243.png) ### 特點 1. 不需要聲明交換機(使用AMQP default). 2. 不需要綁定隊列. 3. 不需要routingKey和bindingKey. 4. 需要聲明隊列. ### 封裝simple模式 ~~~ package rabbitmq import ( "fmt" "github.com/streadway/amqp" ) const MQURL = "amqp://guest:guest@localhost:5672" type RabbitMQ struct { conn *amqp.Connection channel *amqp.Channel Exchange string //交換機名 Queue string //隊列名 Key string //路由名 AMQPUrl string //連接URL } //創建rabbit實例 func New(exchange, queue, key string) *RabbitMQ { r := &RabbitMQ{ Exchange: exchange, Queue: queue, Key: key, AMQPUrl: MQURL, } var err error r.conn, err = amqp.Dial(r.AMQPUrl) // :=不能用于結構體賦值 r.FailOnErr(err, "創建Connection失敗") r.channel, err = r.conn.Channel() r.FailOnErr(err, "創建channel失敗") return r } //處理錯誤 func (r *RabbitMQ) FailOnErr(err error, msg string) { if err != nil { fmt.Printf("%s : %s\n", err, msg) return } } func NewSimpleRabbitMQ(queue string) *RabbitMQ { return New("", queue, "") } //發送消息 func (r *RabbitMQ) PublishSimple(message string) { _, err := r.channel.QueueDeclare(r.Queue, true, false, false, false, nil) if err != nil { fmt.Println(err) return } r.channel.Publish(r.Exchange, r.Queue, false, false, amqp.Publishing{ ContentType: "text/plain", Body: []byte(message), }) } //消費消息 func (r *RabbitMQ) ConsumeSimple() { _, err := r.channel.QueueDeclare(r.Queue, true, false, false, false, nil) if err != nil { fmt.Println(err) return } msg, err := r.channel.Consume(r.Queue, "", true, false, false, false, nil) forever := make(chan struct{}) go func() { for v := range msg { fmt.Println(string(v.Body)) } }() fmt.Println("等待接受消息...") <-forever } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看