from config import spaceApiKey
-RETRY_TIME = 30
+RETRY_TIME = 60
HEARTBEAT_TIME = 10*60
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)
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, 50, 500):
+ logger.critical("Updating the SpaceAPI failed %d times in a row" % self._fail_count)