Files
warmbly/internal/app/worker/receive.go
T

30 lines
733 B
Go

package worker
import (
"context"
"time"
cfk "github.com/confluentinc/confluent-kafka-go/v2/kafka"
"github.com/rs/zerolog/log"
"github.com/warmbly/warmbly/internal/models"
)
func (w *WorkerService) Receive(msg *cfk.Message) error {
var event models.WorkerEvent
if w.KafkaConsumer.Avrov2 != nil {
if err := w.KafkaConsumer.Avrov2.Deser.DeserializeInto(*msg.TopicPartition.Topic, msg.Value, &event); err != nil {
log.Debug().Err(err).Msg("Receive Avro DeserializeInto")
return err
}
} else {
log.Error().Msg("Avro v2 deserializer not configured on worker consumer")
return nil
}
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
return w.HandleEvent(ctx, &event)
}