diff --git a/gddo-server/background.go b/gddo-server/background.go
index 2a42276..025e6e1 100644
--- a/gddo-server/background.go
+++ b/gddo-server/background.go
@@ -15,50 +15,6 @@
 	"github.com/golang/gddo/gosrc"
 )
 
-type BackgroundTask struct {
-	name     string
-	fn       func() error
-	interval time.Duration
-	next     time.Time
-}
-
-func runBackgroundTasks() {
-	defer log.Println("ERROR: Background exiting!")
-
-	var backgroundTasks = []BackgroundTask{
-		{
-			name:     "GitHub updates",
-			fn:       readGitHubUpdates,
-			interval: viper.GetDuration(ConfigGithubInterval),
-		},
-		{
-			name:     "Crawl",
-			fn:       doCrawl,
-			interval: viper.GetDuration(ConfigCrawlInterval),
-		},
-	}
-
-	sleep := time.Minute
-	for _, task := range backgroundTasks {
-		if task.interval > 0 && sleep > task.interval {
-			sleep = task.interval
-		}
-	}
-
-	for {
-		for _, task := range backgroundTasks {
-			start := time.Now()
-			if task.interval > 0 && start.After(task.next) {
-				if err := task.fn(); err != nil {
-					log.Printf("Task %s: %v", task.name, err)
-				}
-				task.next = time.Now().Add(task.interval)
-			}
-		}
-		time.Sleep(sleep)
-	}
-}
-
 func doCrawl() error {
 	// Look for new package to crawl.
 	importPath, hasSubdirs, err := db.PopNewCrawl()
diff --git a/gddo-server/main.go b/gddo-server/main.go
index 018fa21..da97770 100644
--- a/gddo-server/main.go
+++ b/gddo-server/main.go
@@ -920,7 +920,20 @@
 		log.Fatalf("Error opening database: %v", err)
 	}
 
-	go runBackgroundTasks()
+	go func() {
+		for range time.Tick(viper.GetDuration(ConfigCrawlInterval)) {
+			if err := doCrawl(); err != nil {
+				log.Printf("Task Crawl: %v", err)
+			}
+		}
+	}()
+	go func() {
+		for range time.Tick(viper.GetDuration(ConfigGithubInterval)) {
+			if err := readGitHubUpdates(); err != nil {
+				log.Printf("Task GitHub updates: %v", err)
+			}
+		}
+	}()
 
 	staticServer := httputil.StaticServer{
 		Dir:    viper.GetString(ConfigAssetsDir),
