A social RSS reader built on the AT Protocol. glean.at
glean atproto atmosphere rss feed social app
14
fork

Configure Feed

Select the types of activity you want to include in your feed.

Increase PDS sync interval to 24 hours

+7 -3
+1 -1
.env.example
··· 3 3 GLEAN_SESSION_KEY=change-me-to-a-random-string 4 4 GLEAN_JETSTREAM=wss://jetstream.glean.at 5 5 GLEAN_PLC_URL=https://didplc.glean.at 6 - GLEAN_SYNC_INTERVAL=30m 6 + GLEAN_SYNC_INTERVAL=24h 7 7 GLEAN_CLUSTER_INTERVAL=60m 8 8 GLEAN_FETCH_INTERVAL=15m 9 9 GLEAN_COLLECTION_DIR_URL=https://lightrail.microcosm.blue/xrpc/com.atproto.sync.listReposByCollection?collection=at.glean.subscription
+4
internal/server/server.go
··· 395 395 }() 396 396 } 397 397 398 + // PeriodicSync runs a full PDS sync for all users on a fixed interval. 399 + // Jetstream handles real-time create/update/delete events, but gaps can 400 + // appear after Jetstream downtime or rare missed events. This catches up by 401 + // reconciling each user's PDS records against the local index. 398 402 func (s *Server) PeriodicSync(ctx context.Context, interval time.Duration) { 399 403 ticker := time.NewTicker(interval) 400 404 defer ticker.Stop()
+1 -1
main.go
··· 25 25 addr := flag.String("addr", envOr("GLEAN_ADDR", ":8080"), "listen address") 26 26 dbPath := flag.String("db", envOr("GLEAN_DB", "glean.db"), "database path") 27 27 jetstreamURL := flag.String("jetstream", envOr("GLEAN_JETSTREAM", "wss://jetstream.glean.at"), "Jetstream URL") 28 - syncInterval := flag.Duration("sync-interval", envDuration("GLEAN_SYNC_INTERVAL", 30*time.Minute), "PDS sync interval") 28 + syncInterval := flag.Duration("sync-interval", envDuration("GLEAN_SYNC_INTERVAL", 24*time.Hour), "PDS sync interval") 29 29 clusterInterval := flag.Duration("cluster-interval", envDuration("GLEAN_CLUSTER_INTERVAL", 1*time.Hour), "cluster recomputation interval") 30 30 fetchInterval := flag.Duration("fetch-interval", envDuration("GLEAN_FETCH_INTERVAL", 15*time.Minute), "feed fetch tick interval") 31 31 collectionDirURL := flag.String("collection-dir", envOr("GLEAN_COLLECTION_DIR_URL", ""), "collection directory URL for startup backfill")
+1 -1
readme.md
··· 57 57 | `GLEAN_ADDR` | `:8080` | Listen address | 58 58 | `GLEAN_DB` | `glean.db` | SQLite base path (`_users`, `_articles`, `_recs` suffixes) | 59 59 | `GLEAN_JETSTREAM` | `wss://jetstream.glean.at` | Jetstream WebSocket URL | 60 - | `GLEAN_SYNC_INTERVAL` | `30m` | PDS sync interval (Go duration: `30m`, `2h30m`, etc.) | 60 + | `GLEAN_SYNC_INTERVAL` | `24h` | PDS sync interval (Go duration: `24h`, `12h`, etc.) | 61 61 | `GLEAN_CLUSTER_INTERVAL` | `1h` | Cluster recomputation interval (Go duration) | 62 62 | `GLEAN_FETCH_INTERVAL` | `15m` | Feed fetch scheduler tick interval (Go duration) | 63 63 | `GLEAN_COLLECTION_DIR_URL` | _(empty)_ | Collection directory URL for startup backfill |