Amqp: d.AckλŠ” 채널을 λ‹«μŠ΅λ‹ˆλ‹€.

에 λ§Œλ“  2013λ…„ 10μ›” 22일  Β·  3μ½”λ©˜νŠΈ  Β·  좜처: streadway/amqp

ν•œ λ²ˆμ— μΆ©λΆ„ν•œ λ©”μ‹œμ§€(예: 10,000)둜 μ†ŒλΉ„μžλ₯Ό κ³΅κ²©ν•˜λ©΄ 채널 μ•„λž˜μ˜ μ½”λ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ λ‹«νžˆκ³  더 이상 μƒˆλ‘œμš΄ 배달을 받지 μ•ŠμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ d.Ackλ₯Ό μ œκ±°ν•˜κ³  λ‚©ν’ˆλ³Έμ²΄λ§Œ 좜λ ₯ν•˜λ©΄ 문제 μ—†μŠ΅λ‹ˆλ‹€.

func main() {
    conn, _ := amqp.Dial(*uri)

    channel, _ := conn.Channel()

    deliveries, _ := channel.Consume(
        *queue, //queue
        "",
        false,
        false,
        false,
        false,
        nil)

    for d := range deliveries {
        go func(amqp.Delivery) {
            log.Printf("got %s", d.Body)
            d.Ack(false)
        }(d)
    }
}

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

도움을 μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€. @michaelklishin μ €λŠ” 이쀑

μž‘μ—… μ½”λ“œλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

func main() {
    conn, _ := amqp.Dial(*uri)

    channel, _ := conn.Channel()

    deliveries, _ := channel.Consume(
        *queue, //queue
        "",
        false,
        false,
        false,
        false,
        nil)

    for d := range deliveries {
        go doSomeWork(d)
    }
}
func doSomeWork(d amqp.Delivery){
     log.Printf("got %s", d.Body)
     d.Ack(false)
}

λͺ¨λ“  3 λŒ“κΈ€

읡λͺ… ν•¨μˆ˜κ°€ for λ¬Έμ—μ„œ d μ΄μƒμœΌλ‘œ λ‹«νž™λ‹ˆλ‹€. func의 λ²”μœ„μ—μ„œ λ§€κ°œλ³€μˆ˜μ˜ 이름을 μ§€μ •ν•˜μ‹­μ‹œμ˜€.

λ˜ν•œ λ‹€μŒκ³Ό 같은 비동기 채널 였λ₯˜λ₯Ό ν‘œμ‹œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

go func() {
  log.Fatal(<-channel.NotifyClose(make(chan *amqp.Error)))
}()

@MattParker89 λŠ” RabbitMQ 둜그λ₯Ό μ°Έμ‘°ν•˜μ„Έμš”. 채널 μ˜ˆμ™Έκ°€ ν¬ν•¨λ©λ‹ˆλ‹€. 당신은 거의 ν™•μ‹€ν•˜κ²Œ μ΄μ€‘μœΌλ‘œ 배달을 ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

도움을 μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€. @michaelklishin μ €λŠ” 이쀑

μž‘μ—… μ½”λ“œλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

func main() {
    conn, _ := amqp.Dial(*uri)

    channel, _ := conn.Channel()

    deliveries, _ := channel.Consume(
        *queue, //queue
        "",
        false,
        false,
        false,
        false,
        nil)

    for d := range deliveries {
        go doSomeWork(d)
    }
}
func doSomeWork(d amqp.Delivery){
     log.Printf("got %s", d.Body)
     d.Ack(false)
}
이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰