[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