code: def _LeaseMessageHandlerRequests(self, lease_time, limit):
      
      leased_requests = []
  
      now = rdfvalue.RDFDatetime.Now()
      zero = rdfvalue.RDFDatetime.FromSecondsSinceEpoch(0)
      expiration_time = now + lease_time
  
      leases = self.message_handler_leases
      for requests in itervalues(self.message_handler_requests):
        for r in itervalues(requests):
          existing_lease = leases.get(r.handler_name, {}).get(r.request_id, zero)
          if existing_lease < now:
            leases.setdefault(r.handler_name, {})[r.request_id] = expiration_time
            r.leased_until = expiration_time
            r.leased_by = utils.ProcessIdString()
            leased_requests.append(r)
            if len(leased_requests) >= limit:
              break
  
      return leased_requests
docs: Read and lease some outstanding message handler requests.