···
type CensusService struct {
-
backfill *backfill.Backfiller
seenHosts map[string]bool
type jobMaker interface {
···
for _, host := range res.Hosts {
// don't reprocess hosts already handled
-
_, ok := cs.seenHosts[host.Hostname]
slog.Info("already processed host, skipping", "host", host)
···
hcur, err := cs.cursor.GetHostCursor(host)
slog.Error("error fetching host cursor", "err", err)
···
for _, repo := range res.Repos {
_, err := jmstore.GetOrCreateJob(ctx, repo.Did, backfill.StateEnqueued)
···
if res.Cursor != nil && *res.Cursor != "" {
if err := cs.cursor.SetHostCursor(host, curs); err != nil {
slog.Error("error updating cursor for host", "err", err)
slog.Info("finished listing repos", "host", host)
-
defer cs.seenLk.Unlock()
cs.seenHosts[host] = true
···
type CensusService struct {
+
backfill *backfill.Backfiller
seenHosts map[string]bool
type jobMaker interface {
···
for _, host := range res.Hosts {
// don't reprocess hosts already handled
+
seen := cs.seenHosts[host.Hostname]
slog.Info("already processed host, skipping", "host", host)
···
hcur, err := cs.cursor.GetHostCursor(host)
slog.Error("error fetching host cursor", "err", err)
···
for _, repo := range res.Repos {
_, err := jmstore.GetOrCreateJob(ctx, repo.Did, backfill.StateEnqueued)
···
if res.Cursor != nil && *res.Cursor != "" {
if err := cs.cursor.SetHostCursor(host, curs); err != nil {
slog.Error("error updating cursor for host", "err", err)
slog.Info("finished listing repos", "host", host)
cs.seenHosts[host] = true