package dataservice import ( "context" "sync" "time" "gittea.marcokittel.de/elio/eliotools/datawriter/internal/dbwriter" "gittea.marcokittel.de/elio/eliotools/datawriter/internal/event" "gittea.marcokittel.de/elio/eliotools/logger" ) type DataService struct { listener []event.EventListener log logger.Logger } func (d *DataService) ListenerCount() int { return len(d.listener) } func (d *DataService) Run(ctx context.Context, wg *sync.WaitGroup) { defer wg.Done() for { select { case <-ctx.Done(): return default: //Hier nach neuen Dateien suchen for _, l := range d.listener { err := l.HandleData(ctx, dbwriter.MyStruct{A: "dkl", B: 3}) if err != nil { //todo } } d.log.Info("DataService Run") time.Sleep(time.Second * 2) } } } func (d *DataService) AddListener(ev event.EventListener) { d.listener = append(d.listener, ev) } func NewDataService() *DataService { ds := DataService{listener: make([]event.EventListener, 0), log: logger.NewMarcoLogger()} return &ds }