From 0578c6ecbc60fcc87557f5f8ac8d47ee4e89427c Mon Sep 17 00:00:00 2001 From: Julian Arndt Date: Mon, 11 Jan 2021 10:28:33 +0100 Subject: [PATCH] Add wait and retry for API Football minute rate limit --- .../jeyp91/apifootball/APIFootballUpdater.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/jeyp91/apifootball/APIFootballUpdater.java b/src/main/java/de/jeyp91/apifootball/APIFootballUpdater.java index 2337614..a5aba7f 100644 --- a/src/main/java/de/jeyp91/apifootball/APIFootballUpdater.java +++ b/src/main/java/de/jeyp91/apifootball/APIFootballUpdater.java @@ -2,7 +2,6 @@ package de.jeyp91.apifootball; import de.jeyp91.ResourceProvider; import de.jeyp91.S3Provider; -import de.jeyp91.teamidmatcher.TeamIDMatcher; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; @@ -31,7 +30,20 @@ public class APIFootballUpdater { S3Provider prov = new S3Provider(); prov.writeFixturesToS3(league, content); } catch (Exception e) { - logger.error(e.getMessage()); + if(e.getMessage().endsWith("did not have any results with status: 'Too many requests. Your rate limit is 10 requests per minute.")) { + try { + Thread.sleep(1000 * 60); + String content = getRawData(apiFootballUrl); + S3Provider prov = new S3Provider(); + prov.writeFixturesToS3(league, content); + } catch (InterruptedException interruptedException) { + interruptedException.printStackTrace(); + } catch (Exception exception) { + logger.error(e.getMessage()); + } + } else { + logger.error(e.getMessage()); + } } }