···
···
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGINT, syscall.SIGTERM)
log.New(os.Stdout, "\n", log.LstdFlags),
···
db, err := gorm.Open(sqlite.Open("state.db"), &gorm.Config{
-
log.Fatalf("failed to connect database: %s", err)
db.AutoMigrate(&backfill.GormDBJob{})
store := backfill.NewGormstore(db)
···
"User-Agent": []string{"backfiller/0.1 (@edavis.dev)"},
-
log.Fatalf("failed to connect to relay: %s", err)
···
go func(bf *backfill.Backfiller) {
if err := pumpRepos(context.TODO(), bf); err != nil {
-
log.Printf("failed pumping repos: %s", err)
···
sched := parallel.NewScheduler(16, 100, "firehose", rsc.EventHandler)
if err := events.HandleRepoStream(ctx, con, sched, nil); err != nil {
-
log.Fatalf("failed to start scheduler: %s", err)
···
func pumpRepos(ctx context.Context, bf *backfill.Backfiller) error {
Host: "https://bsky.network",
···
-
log.Printf("listing repos with cursor = %v", curs)
res, err := atproto.SyncListRepos(ctx, xrpcc, curs, 1000)
return fmt.Errorf("error listing repos: %w", err)
···
for _, repo := range res.Repos {
_, err := jmstore.GetOrCreateJob(ctx, repo.Did, backfill.StateEnqueued)
-
log.Printf("failed to create backfill job: %s", err)
···
···
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGINT, syscall.SIGTERM)
+
sl := slog.With("source", "backfiller")
log.New(os.Stdout, "\n", log.LstdFlags),
···
db, err := gorm.Open(sqlite.Open("state.db"), &gorm.Config{
+
sl.Error("failed to connect to database", "err", err)
db.AutoMigrate(&backfill.GormDBJob{})
store := backfill.NewGormstore(db)
···
"User-Agent": []string{"backfiller/0.1 (@edavis.dev)"},
+
sl.Error("failed to connect to relay", "err", err)
···
go func(bf *backfill.Backfiller) {
if err := pumpRepos(context.TODO(), bf); err != nil {
+
sl.Error("failed pumping repos", "err", err)
···
sched := parallel.NewScheduler(16, 100, "firehose", rsc.EventHandler)
if err := events.HandleRepoStream(ctx, con, sched, nil); err != nil {
+
sl.Error("failed to start scheduler", "err", err)
···
func pumpRepos(ctx context.Context, bf *backfill.Backfiller) error {
+
sl := slog.With("source", "pumpRepos")
Host: "https://bsky.network",
···
+
sl.Info("listing repos", "cursor", curs)
res, err := atproto.SyncListRepos(ctx, xrpcc, curs, 1000)
return fmt.Errorf("error listing repos: %w", err)
···
for _, repo := range res.Repos {
_, err := jmstore.GetOrCreateJob(ctx, repo.Did, backfill.StateEnqueued)
+
sl.Warn("failed to create backfill job", "err", err)