Support rebooting workers

This commit is contained in:
Ben Sarmiento
2024-01-28 23:04:39 +01:00
parent 4ff88372bc
commit 15a24a58a2
7 changed files with 79 additions and 47 deletions

View File

@@ -123,20 +123,27 @@ func (t *TorrentManager) refreshTorrents() []string {
func (t *TorrentManager) StartRefreshJob() {
_ = t.refreshPool.Submit(func() {
t.log.Info("Starting periodic refresh job")
refreshTicker := time.NewTicker(time.Duration(t.Config.GetRefreshEverySecs()) * time.Second)
defer refreshTicker.Stop()
for {
<-time.After(time.Duration(t.Config.GetRefreshEverySecs()) * time.Second)
select {
case <-refreshTicker.C:
checksum := t.getCurrentState()
if t.latestState.equal(checksum) {
continue
}
t.SetNewLatestState(checksum)
t.log.Infof("Detected changes! Refreshing %d torrents", checksum.TotalCount)
checksum := t.getCurrentState()
if t.latestState.equal(checksum) {
continue
updatedPaths := t.refreshTorrents()
t.log.Info("Finished refreshing torrents")
t.TriggerHookOnLibraryUpdate(updatedPaths)
case <-t.RefreshKillSwitch:
t.log.Info("Stopping periodic refresh job")
return
}
t.SetNewLatestState(checksum)
t.log.Infof("Detected changes! Refreshing %d torrents", checksum.TotalCount)
updatedPaths := t.refreshTorrents()
t.log.Info("Finished refreshing torrents")
t.TriggerHookOnLibraryUpdate(updatedPaths)
}
})
}