diff options
Diffstat (limited to 'src/hub/src/spreadspace.org/sfive/s5srvForward.go')
-rw-r--r-- | src/hub/src/spreadspace.org/sfive/s5srvForward.go | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/hub/src/spreadspace.org/sfive/s5srvForward.go b/src/hub/src/spreadspace.org/sfive/s5srvForward.go index 00542a4..6b3e654 100644 --- a/src/hub/src/spreadspace.org/sfive/s5srvForward.go +++ b/src/hub/src/spreadspace.org/sfive/s5srvForward.go @@ -60,6 +60,16 @@ func (self StatsSinkServer) getLastUpdate(baseurl string, client *http.Client) ( return } +func (self StatsSinkServer) getUpdatesAfterInvoke(id int) (values []StatisticsData, err error) { + token := getUpdatesAfterToken{id: id, response: make(chan getUpdatesAfterResult, 1)} + defer close(token.response) + self.getUpdatesAfterChan <- token + res := <-token.response + values = res.values + err = res.err + return +} + func (self StatsSinkServer) handleForwarding(baseurl string, client *http.Client) { url := baseurl + "/updates" tryResync: @@ -76,7 +86,7 @@ tryResync: nextBatch: for { - updates, err := self.store.GetUpdatesAfter(lastId) + updates, err := self.getUpdatesAfterInvoke(lastId) if err != nil { s5l.Printf("fwd: failed reading updates: %v\n", err) time.Sleep(500 * time.Millisecond) @@ -115,7 +125,7 @@ tryResync: lastId = findMaxId(updates) s5l.Printf("fwd: new lastid: %d", lastId) - time.Sleep(2 * time.Second) + time.Sleep(1 * time.Second) } } } |