def _set_cache(self, user, friends): cache = get_cache() key = 'mss.friends.%s' % user.id logging.debug("setting cache for key %s" % key) cache.set(key, friends)
def create_logged_user(last_name='should-be-last-name-1', first_name='test_create_user', email='should-be-email', username='******'): user = User() user.last_name = last_name user.first_name = first_name user.username = username user.gender = User._MALE user.created = datetime.now() user.last_login = datetime.now() user.email = email user.is_staff = False user.is_superuser = False user.is_active = True password = '******' m = hashlib.sha1() m.update(password) user.password = '******' + m.hexdigest() user.save() cache = get_cache() cache.set('should-be-user-auth', username) return user
def after_insert(self, mapper, connection, instance): cache = get_cache() expires = self.get_expires(instance, "create") for expire in expires: md5key, key = self.get_key_from_expires(instance, expire) logging.debug("Invalidando chave[%s] no cache on insert [%s][%s]" % (key,instance, md5key)) cache.delete(md5key) return EXT_CONTINUE
def after_insert(self, mapper, connection, instance): cache = get_cache() expires = self.get_expires(instance, "create") for expire in expires: md5key, key = self.get_key_from_expires(instance, expire) logging.debug("Invalidando chave[%s] no cache on insert [%s][%s]" % (key, instance, md5key)) cache.delete(md5key) return EXT_CONTINUE
def suggestions(self, user, **kw): request_handler = kw.get('request_handler') #TODO - passar para o model cache = get_cache() key = 'mss.friends.%s' % user.id friends = cache.get(key) #TODO - enviar email se achar? if friends: return self.render_to_json({"friends": [friend.as_dict() for friend in friends]}, request_handler) return self.render_to_json({"status": "ok", "msg": "There is no suggestion at this time!"}, request_handler)
def test_can_login(self): user = create_user(username='******') self.http_client.fetch(self.get_url('/login') + '?username=%s&password=should-be-password' % user.username, self.stop) response = self.wait() cache = get_cache() username = cache.get(simplejson.loads(response.body)['msg']) assert username == user.username user.delete()
def get(self, ident, **kw): mapper = self._mapper_zero() session = self.session cache = get_cache() # logging.debug("%s.................................................." % datetime.now().strftime("%H:%M:%S:%f")) key = mapper.identity_key_from_primary_key(ident) cacheobj = session.identity_map.get(key) if cacheobj and hasattr(cacheobj, "__no_session__") and cacheobj.__no_session__: session.expunge(cacheobj) cacheobj = None cache_key, keystr = CachedQuery.generate_key(key[0], ident) if not cacheobj: if not (hasattr(key[0], "__no_cache__") and key[0].__no_cache__): cacheobj = cache.get(cache_key) if cacheobj is not None: logging.debug( "CachedQuery [CACHE] -> recuperando do cache e setando na sessao" ) cacheobj.__dict__[ "_sa_instance_state"] = attributes.instance_state(cacheobj) session.add(cacheobj) else: logging.debug( "CachedQuery [BANCO] -> nao existe no cache, pega do banco %s" % keystr) cacheobj = super(CachedQuery, self).get(ident) if cacheobj is None: return None logging.debug("CachedQuery [CACHE] -> setando no cache %s" % cacheobj) cache.set(cache_key, cacheobj) else: logging.debug("CachedQuery [SESSION] -> recuperando da sessao ") # logging.debug("%s.................................................." % datetime.now().strftime("%H:%M:%S:%f")) return cacheobj
def after_update(self, mapper, connection, instance): if not Session.object_session(instance).is_modified(instance, include_collections=False, passive=True): return EXT_STOP cache = get_cache() expires = self.get_expires(instance, "update") for expire in expires: md5key, key = self.get_key_from_expires(instance, expire) logging.debug("Invalidando chave[%s] no cache on update [%s][%s]" % (key,instance, md5key)) cache.delete(md5key) # espira a instancia md5key, key = self.get_key_from_mapper(mapper,instance) logging.debug("Invalidando chave[%s] no cache on update [%s][%s]" % (key,instance, md5key)) cache.delete(md5key) return EXT_CONTINUE
def test_can_login(self): user = create_user(username='******') self.http_client.fetch( self.get_url('/login') + '?username=%s&password=should-be-password' % user.username, self.stop) response = self.wait() cache = get_cache() username = cache.get(simplejson.loads(response.body)['msg']) assert username == user.username user.delete()
def after_update(self, mapper, connection, instance): if not Session.object_session(instance).is_modified( instance, include_collections=False, passive=True): return EXT_STOP cache = get_cache() expires = self.get_expires(instance, "update") for expire in expires: md5key, key = self.get_key_from_expires(instance, expire) logging.debug("Invalidando chave[%s] no cache on update [%s][%s]" % (key, instance, md5key)) cache.delete(md5key) # espira a instancia md5key, key = self.get_key_from_mapper(mapper, instance) logging.debug("Invalidando chave[%s] no cache on update [%s][%s]" % (key, instance, md5key)) cache.delete(md5key) return EXT_CONTINUE
def suggestions(self, user, **kw): request_handler = kw.get('request_handler') #TODO - passar para o model cache = get_cache() key = 'mss.friends.%s' % user.id friends = cache.get(key) #TODO - enviar email se achar? if friends: return self.render_to_json( {"friends": [friend.as_dict() for friend in friends]}, request_handler) return self.render_to_json( { "status": "ok", "msg": "There is no suggestion at this time!" }, request_handler)
def get(self, ident, **kw): mapper = self._mapper_zero() session = self.session cache = get_cache() # logging.debug("%s.................................................." % datetime.now().strftime("%H:%M:%S:%f")) key = mapper.identity_key_from_primary_key(ident) cacheobj = session.identity_map.get(key) if cacheobj and hasattr(cacheobj, "__no_session__") and cacheobj.__no_session__: session.expunge(cacheobj) cacheobj = None cache_key, keystr = CachedQuery.generate_key(key[0], ident) if not cacheobj: if not (hasattr(key[0], "__no_cache__") and key[0].__no_cache__): cacheobj = cache.get(cache_key) if cacheobj is not None: logging.debug("CachedQuery [CACHE] -> recuperando do cache e setando na sessao") cacheobj.__dict__["_sa_instance_state"] = attributes.instance_state(cacheobj) session.add(cacheobj) else: logging.debug("CachedQuery [BANCO] -> nao existe no cache, pega do banco %s" % keystr) cacheobj = super(CachedQuery, self).get(ident) if cacheobj is None: return None logging.debug("CachedQuery [CACHE] -> setando no cache %s" % cacheobj) cache.set(cache_key, cacheobj) else: logging.debug("CachedQuery [SESSION] -> recuperando da sessao ") # logging.debug("%s.................................................." % datetime.now().strftime("%H:%M:%S:%f")) return cacheobj
def set_instance_cache(instance): md5key, key = CachedQuery.generate_key(instance.__class__, instance.id) cache = get_cache() logging.debug("[CACHE][set] - %s {%s}" % (md5key, key)) cache.set(md5key, instance)
def expire_instance_cache(classe, id): md5key, key = CachedQuery.generate_key(classe, id) cache = get_cache() logging.debug("[CACHE][expire] - %s {%s}" % (md5key, key)) cache.delete(md5key)