summaryrefslogtreecommitdiff
path: root/crawler
diff options
context:
space:
mode:
authorhorus2018-02-19 17:53:39 +0100
committerhorus2018-02-19 17:53:39 +0100
commite63a7541a38c25dc8a78e7f838e61c7318c4775f (patch)
tree7b284efa228402d69ce9ca479caa989210955591 /crawler
parentc102c17ddfc3aaddde33023f89ca77c2ee04f0e5 (diff)
downloadalkobote-e63a7541a38c25dc8a78e7f838e61c7318c4775f.tar.gz
Implements retry on error. (crawler)
Diffstat (limited to 'crawler')
-rw-r--r--crawler/scrape.go25
1 files changed, 16 insertions, 9 deletions
diff --git a/crawler/scrape.go b/crawler/scrape.go
index 6483548..246f333 100644
--- a/crawler/scrape.go
+++ b/crawler/scrape.go
@@ -28,17 +28,24 @@ func (app *App) Scrape(shop Shop, wait chan bool) {
var W []Angebot
var err error
- W = app.ScrapeShop(shop)
+ // retry on error
+ for i := 0; i < 3; i++ {
+ W = app.ScrapeShop(shop)
- W = sanitize_offer(W, shop)
+ W = sanitize_offer(W, shop)
- err = app.save_offer(W)
- if err != nil {
- Warn(err, "Saving offers failed")
- }
- err = app.remove_expired(W, shop)
- if err != nil {
- Warn(err, "Removing expired offers failed")
+ if len(W) >= 1 {
+ break
+ }
+
+ err = app.save_offer(W)
+ if err != nil {
+ Warn(err, "Saving offers failed")
+ }
+ err = app.remove_expired(W, shop)
+ if err != nil {
+ Warn(err, "Removing expired offers failed")
+ }
}
wait <- true