package goscrobble import ( "fmt" "time" ) var endTicker chan bool func StartBackgroundWorkers() { endTicker := make(chan bool) hourTicker := time.NewTicker(time.Duration(1) * time.Hour) minuteTicker := time.NewTicker(time.Duration(60) * time.Second) go func() { for { select { case <-endTicker: fmt.Println("Stopping background workers") return case <-hourTicker.C: // Clear old password reset tokens go clearOldResetTokens() // Attempt to pull missing images from spotify - hackerino version! user, _ := getUserByUsername("idanoo") go user.updateImageDataFromSpotify() case <-minuteTicker.C: // Update playdata from Spotify go updateSpotifyData() // Update playdate from Navidrome go updateNavidromeData() } } }() } func EndBackgroundWorkers() { endTicker <- true }