Ver código fonte

Cleanup temporaries once an hour (fixes #858)

Audrius Butkevicius 11 anos atrás
pai
commit
ea9f8b0ceb
1 arquivos alterados com 8 adições e 3 exclusões
  1. 8 3
      internal/model/puller.go

+ 8 - 3
internal/model/puller.go

@@ -84,16 +84,21 @@ func (p *Puller) Serve() {
 
 	pullTimer := time.NewTimer(checkPullIntv)
 	scanTimer := time.NewTimer(time.Millisecond) // The first scan should be done immediately.
+	cleanTimer := time.NewTicker(time.Hour)
 
 	defer func() {
 		pullTimer.Stop()
 		scanTimer.Stop()
+		cleanTimer.Stop()
 		// TODO: Should there be an actual FolderStopped state?
 		p.model.setState(p.folder, FolderIdle)
 	}()
 
 	var prevVer uint64
 
+	// Clean out old temporaries before we start pulling
+	p.clean()
+
 	// We don't start pulling files until a scan has been completed.
 	initialScanCompleted := false
 
@@ -128,9 +133,6 @@ loop:
 				continue
 			}
 
-			// Clean out old temporaries before we start pulling
-			p.clean()
-
 			if debug {
 				l.Debugln(p, "pulling", prevVer, curVer)
 			}
@@ -197,6 +199,9 @@ loop:
 				l.Infoln("Completed initial scan (rw) of folder", p.folder)
 				initialScanCompleted = true
 			}
+		// Clean out old temporaries
+		case <-cleanTimer.C:
+			p.clean()
 		}
 	}
 }