Ejemplo n.º 1
0
 def _store_item_batch(self, key, value):
     data = {}
     self._key_check(key)
     for k, v in six.iteritems(value):
         if k.startswith('_'):
             continue
         # convert set to list manually for successful serialization
         v = restruct_for_pack(v)
         k = to_bytes(k)
         data[b"m:%s" % k] = packb(v, use_bin_type=True)
     tries = 3
     while data and tries > 0:
         try:
             self._batch.put(key, data)
         except ValueError:
             self.logger.exception("Exception happened during item storing, %d tries left", tries)
             data_lengths = dict((k, len(v)) for k, v in six.iteritems(data))
             self.logger.info("RK %s per-column lengths %s", key, str(data_lengths))
             for k, length in data_lengths.items():
                 if length > self.MAX_VALUE_SIZE:
                     self.logger.info("Dropping key %s", k)
                     del data[k]
             tries -= 1
             continue
         else:
             break
Ejemplo n.º 2
0
 def _store_item_batch(self, key, value):
     data = {}
     self._key_check(key)
     for k, v in six.iteritems(value):
         if k.startswith('_'):
             continue
         # convert set to list manually for successful serialization
         v = restruct_for_pack(v)
         k = to_bytes(k)
         data[b"m:%s" % k] = packb(v, use_bin_type=True)
     tries = 3
     while data and tries > 0:
         try:
             self._batch.put(key, data)
         except ValueError:
             self.logger.exception("Exception happened during item storing, %d tries left", tries)
             data_lengths = dict((k, len(v)) for k, v in six.iteritems(data))
             self.logger.info("RK %s per-column lengths %s", key, str(data_lengths))
             for k, length in list(data_lengths.items()):
                 if length > self.MAX_VALUE_SIZE:
                     self.logger.info("Dropping key %s", k)
                     del data[k]
             tries -= 1
             continue
         else:
             break
Ejemplo n.º 3
0
def _prepare_request_message(request):
    return [
        request.url, request.method, request.headers, request.cookies,
        restruct_for_pack(request.meta)
    ]