def restore_unacked_once(self): """Restores all uncknowledged message at shutdown/gc collect. Will only be done once for each instance. """ self._on_collect.cancel() self._flush() state = self._delivered if not self.channel.do_restore or getattr(state, "restored"): assert not state return try: if state: say("Restoring unacknowledged messages: %s", state) unrestored = self.restore_unacked() if unrestored: errors, messages = zip(*unrestored) say("UNABLE TO RESTORE %s MESSAGES: %s", len(errors), errors) emergency_dump_state(messages) finally: state.restored = True
def restore_unacked_once(self): """Restores all unacknowledged messages at shutdown/gc collect. Will only be done once for each instance. """ self._on_collect.cancel() self._flush() state = self._delivered if not self.restore_at_shutdown or not self.channel.do_restore: return if getattr(state, 'restored', None): assert not state return try: if state: say('Restoring {0!r} unacknowledged message(s).', len(self._delivered)) unrestored = self.restore_unacked() if unrestored: errors, messages = list(zip(*unrestored)) say('UNABLE TO RESTORE {0} MESSAGES: {1}', len(errors), errors) emergency_dump_state(messages) finally: state.restored = True