fix: stackoverflow

This commit is contained in:
yzqzss 2024-06-23 18:19:01 +08:00
parent 85fd781072
commit 95736c0bc4
2 changed files with 18 additions and 4 deletions

View File

@ -165,7 +165,7 @@ func (t *Tracker) StartSelectTrackerBackground() *Tracker {
for {
fmt.Println("[client->trackers] SelectBestTrackerBackground...")
t.SelectBestTracker()
time.Sleep(5 * time.Minute)
time.Sleep(1 * time.Minute)
}
}()
return t

View File

@ -11,15 +11,29 @@ import (
)
func (t *Tracker) Project() (proj Project) {
if time.Since(t.__project_last_fetched) < 3*time.Minute {
if time.Since(t.__project_last_fetched) <= 3*time.Minute {
return *t.__project
}
t.StartFetchProjectBackground()
for t.__project == nil {
for t.__project == nil { // initial fetch
time.Sleep(1 * time.Second)
if t.__project != nil { // fetch success
return t.Project()
}
}
for { // not nil, but outdated
if time.Since(t.__project_last_fetched) > 5*time.Minute { // over 5 minutes, abort
panic("all fetch failed for 5 minutes")
}
if time.Since(t.__project_last_fetched) <= 3*time.Minute { // not outdated anymore
return *t.__project
}
go t.FetchProject(5 * time.Second) // short timeout
time.Sleep(8 * time.Second)
}
return t.Project()
}
func (t *Tracker) StartFetchProjectBackground() *Tracker {