[Checkins] SVN: lovely.memcached/trunk/src/lovely/memcached/ Invalidate raw and none raw keys in invalidation event handler

Jürgen Kartnaller juergen at kartnaller.at
Thu May 10 07:57:15 EDT 2007


Log message for revision 75669:
  Invalidate raw and none raw keys in invalidation event handler
  

Changed:
  U   lovely.memcached/trunk/src/lovely/memcached/README.txt
  U   lovely.memcached/trunk/src/lovely/memcached/event.py
  U   lovely.memcached/trunk/src/lovely/memcached/utility.py

-=-
Modified: lovely.memcached/trunk/src/lovely/memcached/README.txt
===================================================================
--- lovely.memcached/trunk/src/lovely/memcached/README.txt	2007-05-10 09:51:52 UTC (rev 75668)
+++ lovely.memcached/trunk/src/lovely/memcached/README.txt	2007-05-10 11:57:15 UTC (rev 75669)
@@ -104,7 +104,7 @@
   >>> import threading
   >>> log = []
 
-Each thread has a differnt thread.
+Each thread has a different thread.
 
   >>> def differentConn():
   ...     util3.set(3,3)
@@ -284,7 +284,7 @@
   >>> from lovely.memcached.testing import TestMemcachedClient
   >>> cacheUtil2 = TestMemcachedClient()
   >>> component.provideUtility(cacheUtil2, IMemcachedClient, name='cacheUtil2')
-  >>> key = cacheUtil1.set('Value1', 'key1', dependencies=['dep1'])
+  >>> key = cacheUtil1.set('Value1', 'key1', raw=True, dependencies=['dep1'])
   >>> key = cacheUtil2.set('Value2', 'key2', dependencies=['dep1'])
   >>> event.notify(InvalidateCacheEvent(dependencies=['dep1']))
   >>> cacheUtil1.query('key1') is None
@@ -294,7 +294,7 @@
 
 Or we specify in which memcache we want to invalidate.
 
-  >>> key = cacheUtil1.set('Value1', 'key1', dependencies=['dep1'])
+  >>> key = cacheUtil1.set('Value1', 'key1', raw=True, dependencies=['dep1'])
   >>> key = cacheUtil2.set('Value2', 'key2', dependencies=['dep1'])
   >>> event.notify(InvalidateCacheEvent(cacheName='cacheUtil1',
   ...                                   dependencies=['dep1']))
@@ -303,20 +303,16 @@
   >>> cacheUtil2.query('key2') is None
   False
 
-There is also a convenient function to invalidate caches depending on an
-instance.
-
-  >>> from zope.app.intid.interfaces import IIntIds
-  >>> intids = component.getUtility(IIntIds)
-  >>> from lovely.memcached.event import invalidateObjectCache
-  >>> class Content(object):
-  ...     pass
-  >>> obj = Content()
-  >>> id = intids.register(obj)
-  >>> key = cacheUtil2.set('Value3', 'key3', dependencies=[id])
-  >>> cacheUtil2.query('key3')
-  'Value3'
-  >>> invalidateObjectCache(obj)
-  >>> cacheUtil2.query('key3') is None
+  >>> key = cacheUtil1.set('Value1', 'key1', ns='test', raw=False, dependencies=['dep1'])
+  >>> cacheUtil1.query('key1', ns='test', raw=False)
+  'Value1'
+  >>> event.notify(InvalidateCacheEvent(cacheName='cacheUtil1',
+  ...                                   dependencies=['dep1']))
+  >>> cacheUtil1.query('key1', ns='test', raw=False)
+  'Value1'
+  >>> event.notify(InvalidateCacheEvent(cacheName='cacheUtil1',
+  ...                                   ns='test',
+  ...                                   dependencies=['dep1']))
+  >>> cacheUtil1.query('key1', ns='test', raw=False) is None
   True
 

Modified: lovely.memcached/trunk/src/lovely/memcached/event.py
===================================================================
--- lovely.memcached/trunk/src/lovely/memcached/event.py	2007-05-10 09:51:52 UTC (rev 75668)
+++ lovely.memcached/trunk/src/lovely/memcached/event.py	2007-05-10 11:57:15 UTC (rev 75669)
@@ -25,12 +25,6 @@
 from interfaces import IInvalidateCacheEvent, IMemcachedClient
 
 
-def invalidateObjectCache(obj):
-    """Invalidate caches based on the intid of an object"""
-    intids = component.getUtility(IIntIds)
-    event.notify(InvalidateCacheEvent(dependencies = [intids.getId(obj)]))
-
-
 class InvalidateCacheEvent(object):
     interface.implements(IInvalidateCacheEvent)
 
@@ -53,5 +47,9 @@
     else:
         caches = component.getAllUtilitiesRegisteredFor(IMemcachedClient)
     for cache in caches:
-        cache.invalidate(event.key, event.ns, event.raw, event.dependencies)
+        if event.raw == None:
+            cache.invalidate(event.key, event.ns, event.raw, event.dependencies)
+        else:
+            cache.invalidate(event.key, event.ns, True, event.dependencies)
+            cache.invalidate(event.key, event.ns, False, event.dependencies)
 

Modified: lovely.memcached/trunk/src/lovely/memcached/utility.py
===================================================================
--- lovely.memcached/trunk/src/lovely/memcached/utility.py	2007-05-10 09:51:52 UTC (rev 75668)
+++ lovely.memcached/trunk/src/lovely/memcached/utility.py	2007-05-10 11:57:15 UTC (rev 75669)
@@ -100,7 +100,7 @@
             else:
                 keys = keys +  (key,)
             self.client.set(depKey, keys)
-        
+
     def query(self, key, default=None, ns=None, raw=False):
         ns = self._getNS(ns, raw)
         res = self.client.get(self._buildKey(key, ns, raw=raw))
@@ -175,8 +175,6 @@
         False
 
         If we set the key to raw we must provide a string
-        
-        
         """
         if raw is True:
             if ns:
@@ -184,7 +182,7 @@
             if type(key)!= StringType:
                 raise ValueError, repr(key)
             return key
-        
+
         oid = getattr(key, '_p_oid', None)
         if oid is not None:
             key = oid



More information about the Checkins mailing list