+19
indexer/indexer.go
+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)