an app.bsky.* indexer

handle ops immediately once backfill is complete

Changed files
+8 -2
cmd
+2
cmd/backfiller/backend.go
···
state *gorm.DB
bf *backfill.Backfiller
+
backfillComplete bool
+
firehoseLk sync.Mutex
firehoseSeq string
reposLk sync.Mutex
+4
cmd/backfiller/handlers.go
···
b.firehoseSeq = strconv.Itoa(int(evt.Seq))
b.firehoseLk.Unlock()
+
if b.backfillComplete {
+
return b.bf.HandleEvent(ctx, evt)
+
}
+
job, err := b.bf.Store.GetJob(ctx, evt.Repo)
if job == nil {
if errors.Is(err, backfill.ErrJobNotFound) {
-2
cmd/backfiller/main.go
···
go func() {
if err := backend.PumpRepos(streamCtx); err != nil {
sl.Error("failed pumping repos", "err", err)
-
} else {
-
sl.Info("finished listing repos, switching over to event stream")
}
}()
+2
cmd/backfiller/pump.go
···
}
}
+
sl.Info("finished listing repos, switching over to event stream")
+
b.backfillComplete = true
return nil
}