python-memcache responds to incr on non-existent keys raising a ValueError. Cmemcache...
authorS.Çağlar Onur <caglar@cs.princeton.edu>
Wed, 17 Nov 2010 18:30:05 +0000 (13:30 -0500)
committerS.Çağlar Onur <caglar@cs.princeton.edu>
Wed, 17 Nov 2010 18:30:05 +0000 (13:30 -0500)
aspects/ratelimitaspects.py

index 8be22e5..8c28dd5 100644 (file)
@@ -45,8 +45,11 @@ class BaseRateLimit(object):
         keys_to_check = ["%s_%s_%s" % (self.prefix, api_method_source[0], (now - timedelta(minutes = minute)).strftime("%Y%m%d%H%M")) for minute in range(self.minutes + 1)]
 
         try:
-            mc.incr(current_key)
+            value = mc.incr(current_key)
         except ValueError:
+            value = None
+
+        if value == None:
             mc.set(current_key, 1, time=self.expire_after)
 
         result = mc.get_multi(keys_to_check)