notifier/internal/workers/consumer.go

44 lines
668 B
Go

package workers
import (
"context"
"github.com/twmb/franz-go/pkg/kgo"
"mailnotifier/internal/repository"
"time"
)
type Consumer struct {
repo *repository.Repository
kafkaClient *kgo.Client
}
type ConsumerDeps struct {
Repo *repository.Repository
KafkaClient *kgo.Client
}
func NewConsumerWC(deps ConsumerDeps) *Consumer {
return &Consumer{
repo: deps.Repo,
kafkaClient: deps.KafkaClient,
}
}
// запуск воркера
func (c *Consumer) Start(ctx context.Context) {
ticker := time.NewTicker(time.Hour)
defer ticker.Stop()
for {
select {
case <-ticker.C:
// todo method
case <-ctx.Done():
return
}
}
}