def check_msg_retries(self, message, zyre_msg_type, **kwargs): msg_type = message['header']['type'] if msg_type not in self.message_types: return msg_id = message['header']['msgId'] queued_msg = self.unacknowledged_msgs.get(msg_id, None) if queued_msg: retry = queued_msg.get('retry_number', 0) self.unacknowledged_msgs[msg_id]['retry_number'] = retry + 1 self.unacknowledged_msgs[msg_id][ 'last_retry'] = self.unacknowledged_msgs[msg_id]['next_retry'] else: self.unacknowledged_msgs[msg_id] = dict() self.unacknowledged_msgs[msg_id]['retry_number'] = 0 current_ts = ts.get_time_stamp() self.unacknowledged_msgs[msg_id]['first_attempt'] = current_ts self.unacknowledged_msgs[msg_id]['last_retry'] = current_ts self.unacknowledged_msgs[msg_id]['zyre_msg_type'] = zyre_msg_type if 'receiverIds' in message['header'].keys(): self.unacknowledged_msgs[msg_id]['receiverIds'] = message[ 'header']['receiverIds'] else: self.unacknowledged_msgs[msg_id]['receiverIds'] = list() self.unacknowledged_msgs[msg_id]['msg_args'] = dict() self.unacknowledged_msgs[msg_id]['msg_args']['msg'] = message self.unacknowledged_msgs[msg_id]['msg_args'].update(kwargs) deadline = timedelta(seconds=5**5) self.unacknowledged_msgs[msg_id]['reply_by'] = ts.get_time_stamp( deadline) # TODO This needs to be probably adapted by message type next_attempt = timedelta(seconds=5) self.unacknowledged_msgs[msg_id]['next_retry'] = ts.get_time_stamp( next_attempt)
def add_next_retry(self, msg_id): retry = self.unacknowledged_msgs[msg_id]['retry_number'] timeout = 5**retry next_attempt = timedelta(seconds=timeout) self.unacknowledged_msgs[msg_id][ 'last_retry'] = self.unacknowledged_msgs[msg_id]['next_retry'] self.unacknowledged_msgs[msg_id]['next_retry'] = ts.get_time_stamp( next_attempt) self.unacknowledged_msgs[msg_id]['retry_number'] = retry + 1