[Neo-report] r2552 vincent - /trunk/neo/client/mq.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Thu Dec 16 12:19:34 CET 2010
Author: vincent
Date: Thu Dec 16 12:19:34 2010
New Revision: 2552
Log:
Use _evict to prune data for size.
It updates self._size, so we must read it from there each time.
This also uses the history queue, which was ignored by this code, hence
this should make better use of MQ algorithm.
Modified:
trunk/neo/client/mq.py
Modified: trunk/neo/client/mq.py
==============================================================================
--- trunk/neo/client/mq.py [iso-8859-1] (original)
+++ trunk/neo/client/mq.py [iso-8859-1] Thu Dec 16 12:19:34 2010
@@ -312,21 +312,16 @@ class MQ(object):
self._evict(data.key)
# Limit the size.
- size = self._size
max_size = self._max_size
- if size > max_size:
+ if self._size > max_size:
for cache_buffer in cache_buffers:
- while size > max_size:
- element = cache_buffer.shift()
+ while self._size > max_size:
+ element = cache_buffer.head()
if element is None:
break
- data = element.data
- del self._data[data.key]
- size -= sizeof(data.value)
- del data.value
- if size <= max_size:
+ self._evict(element.data.key)
+ if self._size <= max_size:
break
- self._size = size
__setitem__ = store
More information about the Neo-report
mailing list