def get_state(self): self.logger.info('Call getState') try: resp = yield from self._client.get('{0}/{1}'.format(self._url, 'getState')) except aiohttp.errors.ClientOSError as e: self.logger.error(e) raise KeyboardInterrupt() data = (yield from resp.read()).decode('utf-8') yield from resp.release() if resp.status != 200: self.logger.exception('Status {0}:{1} retry after {2}sec'.format(resp.status, data, settings.RETRY_PERIOD)) yield from asyncio.sleep(settings.RETRY_PERIOD) yield from self.get_state() else: self.logger.debug("Success!! Server return: {}".format(data)) self._field = Field(data)