No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

28 líneas
432 B

  1. package kafka
  2. import (
  3. "context"
  4. "encoding/json"
  5. "fmt"
  6. "github.com/segmentio/kafka-go"
  7. )
  8. func Consume[T any](r *kafka.Reader, ch chan<- T) {
  9. for {
  10. msg, err := r.ReadMessage(context.Background())
  11. if err != nil {
  12. fmt.Println("error reading message:", err)
  13. continue
  14. }
  15. var data T
  16. if err := json.Unmarshal(msg.Value, &data); err != nil {
  17. fmt.Println("error decoding:", err)
  18. continue
  19. }
  20. ch <- data
  21. }
  22. }