code: def _backlog(self, data):
          
  
          try:
              data = json.loads(data)
          except ValueError as e:
              self.log.info("Status contents are %r" % data)
              self.log.exception(e)
              self.log.info("Skipping backlog retrieval.")
              return
  
          last = data['message']['body']
          if isinstance(last, str):
              last = json.loads(last)
  
          then = last['timestamp']
          now = int(time.time())
  
          retrieved = 0
          for message in self.get_datagrepper_results(then, now):
              # Take the messages from datagrepper and remove any keys that were
              # artificially added to the message.  The presence of these would
              # otherwise cause message crypto validation to fail.
              message = fedmsg.crypto.utils.fix_datagrepper_message(message)
  
              if message['msg_id'] != last['msg_id']:
                  retrieved = retrieved + 1
                  self.incoming.put(dict(body=message, topic=message['topic']))
              else:
                  self.log.warning("Already seen %r; Skipping." % last['msg_id'])
  
          self.log.info("Retrieved %i messages from datagrepper." % retrieved)
docs: Find all the datagrepper messages between 'then' and 'now'.
  
          Put those on our work queue.
  
          Should be called in a thread so as not to block the hub at startup.