Ejemplo n.º 1
0
class BaseLocalClient(object):
    def __init__(self, cache_max_items=1000, ttl=60):
        self._cache = LocalCache(cache_max_items)
        self.ttl = ttl
        self.verbose = False

    def fetch(self, url):
        if self.verbose:
            print 'fetching url: %s' % str(url)
        doc = self._cache.get(url, None)
        if doc is None:
            if self.verbose:
                print '\tNot cached'
            doc = self.urlget(url)
            self._cache.set(url, doc, self.ttl)
        return doc

    def urlget(self, url):
        res = urlopen(url, timeout=60)
        if res.code == 200:
            doc = res.read()
            doc = json.loads(doc)
            return doc['response']
        return ''

    def status(self):
        st = {}
        st['cache_items'] = len(self._cache)
        st['cache_size'] = sys.getsizeof(self._cache)
        return st
Ejemplo n.º 2
0
 def __init__(self, cache_max_items=1000, ttl=60):
     self._cache = LocalCache(cache_max_items)
     self.ttl = ttl
     self.verbose = False