def heartbeat(self, token):
"""Called from the heartbeat thread every X seconds"""
if token is not None and token != self._heartbeat_fail_token:
try:
self.logger.debug('Sending heartbeat for task')
self.heartbeat_sf_client.send_task_heartbeat(taskToken=token)
self._heartbeat_fail_token = None
except ClientError as e:
ecode = e.response['Error'].get('Code', 'Unknown')
if ecode in ['TaskDoesNotExist', 'InvalidToken', 'TaskTimedOut']:
# We set the heartbeat_fail_token so we don't retry a heartbeat for this token.
self._heartbeat_fail_token = token
# We only use debug level logging since the task either deleted or ended.
self.logger.debug('Error sending heartbeat for task: %s', ecode)
else:
self.logger.exception('Error sending heartbeat for task')
except Exception:
self.logger.exception('Error sending heartbeat for task')
评论列表
文章目录