def get_agg_data(dc): try: r = agg_data(dc, cache["{0}_data".format(dc)], cache["{0}_stashes".format(dc)]) return r, cache["{0}_filters".format(dc)] except KeyError: data = list() stashes = list() data_futures = list() stashes_futures = list() filters_futures = list() data_executor = concurrent.futures.ThreadPoolExecutor(1) data_futures.append(data_executor.submit(get_data, dc, timeout)) stashes_executor = concurrent.futures.ThreadPoolExecutor(1) stashes_futures.append( stashes_executor.submit(get_stashes, dc, timeout)) filters_executor = concurrent.futures.ThreadPoolExecutor(1) filters_futures.append( filters_executor.submit(filter_data, timeout, dc)) for future_result in as_completed(data_futures): data = future_result.result() for future_result in as_completed(stashes_futures): stashes = future_result.result() for future_result in as_completed(filters_futures): filters = future_result.result() cache.set("{0}_data".format(dc), data, expire=cache_expire_time) cache.set("{0}_stashes".format(dc), stashes, expire=cache_expire_time) cache.set("{0}_filters".format(dc), filters, expire=cache_expire_time) r = agg_data(dc, data, stashes) return r, filters
def filtered(filters): aggregated = [] for dc in dcs: if check_connection(dc): aggregated.append( agg_data(dc, get_data(dc, timeout), get_stashes(dc, timeout), get_clients(dc, timeout), filters)) return render_template('data.html', dcs=dcs, data=aggregated, filter_data=get_filter_data(dcs, timeout), appcfg=appcfg)
def get_agg_data(dc): r = agg_data(dc, get_data(dc, timeout), get_stashes(dc, timeout)) return r