Wait a bit more before starting to complain
[saartuer.git] / spaceapi.py
index eea73f6a2a708fb3061617527e60fb10a76207f7..181981ada949494c91e97ce9f22d5dafd1d32b71 100644 (file)
@@ -4,7 +4,7 @@ import urllib.request, time
 
 from config import spaceApiKey
 
-RETRY_TIME = 30
+RETRY_TIME = 60
 HEARTBEAT_TIME = 10*60
 
 class SpaceApi:
@@ -13,6 +13,7 @@ class SpaceApi:
                self._remote_state = None
                self._last_set_at = 0
                self._running = True
+               self._fail_count = 0 # number of consecutive fails
                self.set_state = ThreadFunction(self._set_state, "Space API")
                waker.register(self.set_state, RETRY_TIME)
        
@@ -44,7 +45,11 @@ class SpaceApi:
                if self._local_state is not None and (self._local_state != self._remote_state or now > self._last_set_at+HEARTBEAT_TIME):
                        # take action!
                        success = self._do_request(self._local_state)
-                       # TODO error too often -> log critical to send mails
                        if success:
                                self._remote_state = self._local_state
                                self._last_set_at = now
+                               self._fail_count = 0
+                       else:
+                               self._fail_count += 1
+                               if self._fail_count in (5, 100):
+                                       logger.critical("Updating the SpaceAPI failed %d times in a row" % self._fail_count)