Esempio n. 1
0
    def get(self, cluster_id=None):
        cluster_attrs = fetch_config[cluster_id]

        result = urlfetch.fetch(cluster_attrs['url'])
        # appids = result.content.split('|')
        appids = lib.getAppidFromINI(result.content)

        appid_dict = memcache.get_multi(appids)

        response_dict = {
            "available": [],
            "over_quota": [],
        }

        for appid, val in appid_dict.iteritems():
            if val is True:
                response_dict['available'].append(appid)
            elif val is False:
                response_dict['over_quota'].append(appid)

        response_dict['status_msg'] = "今日还剩 %dGB/%dGB 流量" % (len(response_dict['available']), len(appids))

        response_json = json.dumps(response_dict, ensure_ascii=False)

        self.response.write(response_json)
Esempio n. 2
0
def defer_fetch(url, cluster_id, is_list=False):

    logging.info('fetching...%s' % url)

    result = urlfetch.fetch(url)

    if is_list:
        # appids = result.content.split('|')
        appids = lib.getAppidFromINI(result.content)
        for appid in appids:
            app_url = 'https://%s.appspot.com/2' % appid
            taskqueue.add(url='/start_fetch', params={'url': app_url, 'cluster_id': cluster_id})
    else:
        appid = urlparse.urlparse(url).netloc.split('.')[0]
        if result.status_code == 503:
            memcache.set(appid, False)
        else:
            memcache.set(appid, True)