A collection of Custom Bluesky Feeds, including Fresh Feeds, all under one roof

periodic tracking refresh

rimar1337 adc8d983 b160d13e

Changed files
+19
indexer
+19
indexer/indexer.go
··· 136 136 return lastCursor 137 137 } 138 138 139 + // Periodically refreshes the trackedDIDs and trackedDIDsMap from the database. 140 + func startTrackedDIDRefreshJob(db *sql.DB) { 141 + ticker := time.NewTicker(10 * time.Minute) 142 + defer ticker.Stop() 143 + 144 + for range ticker.C { 145 + updatedDIDs, err := getTrackedDIDs(context.Background(), db) 146 + if err != nil { 147 + log.Printf("Failed to refresh tracked DIDs: %v", err) 148 + continue 149 + } 150 + initTrackedDIDsMap(updatedDIDs) 151 + trackedDIDs = updatedDIDs 152 + log.Printf("Refreshed tracked DIDs: %v\n", trackedDIDs) 153 + } 154 + } 139 155 func main() { 140 156 // Connect to Postgres // Open the database connection 141 157 dbHost := os.Getenv("DB_HOST") ··· 173 189 initTrackedDIDsMap(trackedDIDs) 174 190 175 191 go startBatchInsertFollowJob(db) 192 + 193 + go startTrackedDIDRefreshJob(db) 194 + 176 195 // If the cursor is older than 24 hours, skip it 177 196 if lastCursor > 0 { 178 197 cursorTime := time.UnixMicro(lastCursor)