def get_reliability(): print("Starting Reliability ThreadPoolExecutor") futures = [] start_date = request.args.get('start_date') end_date = request.args.get('end_date') start_date, end_date, range_gap = send_dates_with_range( start_date, end_date) print(start_date) print(end_date) query = [ "status%3AUF&wt=json&fl=type&indent=true&facet=true&facet.range=date" "&f.date.facet.range.start=" + start_date + "&f.date.facet.range.end=" + end_date + "&f.date.facet.range.gap=%2b1" + range_gap + "&facet.range=date", "status%3AIF&wt=json&fl=type&indent=true&facet=true&facet.range=date" "&f.date.facet.range.start=" + start_date + "&f.date.facet.range.end=" + end_date + "&f.date.facet.range.gap=%2b1" + range_gap + "&facet.range=date", "status%3AOK&wt=json&fl=type&indent=true&facet=true&facet.range=date" "&f.date.facet.range.start=" + start_date + "&f.date.facet.range.end=" + end_date + "&f.date.facet.range.gap=%2b1" + range_gap + "&facet.range=date" ] # Run this with a pool of 5 agents having a chunksize of 3 until finished agents = 3 chunksize = 3 with Pool(processes=agents) as pool: result = pool.map(execute_solr_url_query_by_facet, query, chunksize) print("Reliability complete") director = Director() builder = ConcreteDashboardBuilder() director.builder = builder # print(result[0]) director.build_UF( result[0]['facet_counts']['facet_ranges']['date']['counts'], ['OK', 'UF', 'IF']) director.build_IF( result[1]['facet_counts']['facet_ranges']['date']['counts'], ['OK', 'UF', 'IF']) director.build_OK( result[2]['facet_counts']['facet_ranges']['date']['counts'], ['OK', 'UF', 'IF']) return jsonify({'reliability': builder.customerData.getReliabilityData()})
def get_tasks(): print("Starting ThreadPoolExecutor") futures = [] query = [ "status%3AUF&wt=json&fl=type&indent=true&facet=true&facet.range=date" "&f.date.facet.range.start=2020-12-01T23%3A59%3A59Z&f.date.facet.range.end=2020-12-07T23%3A59%3A59Z" "&f.date.facet.range.gap=%2b1DAY&facet.range=date", "status%3AIF&wt=json&fl=type&indent=true&facet=true&facet.range=date" "&f.date.facet.range.start=2020-12-01T23%3A59%3A59Z&f.date.facet.range.end=2020-12-07T23%3A59%3A59Z" "&f.date.facet.range.gap=%2b1DAY&facet.range=date", "status%3AOK&wt=json&fl=type&indent=true&facet=true&facet.range=date" "&f.date.facet.range.start=2020-12-01T23%3A59%3A59Z&f.date.facet.range.end=2020-12-07T23%3A59%3A59Z" "&f.date.facet.range.gap=%2b1DAY&facet.range=date", "*%3A*&fl=date%2Cresponse_time&sort=date%20asc", "*%3A*&wt=json&wt=json&fl=type&indent=true&facet=true&stats=true&stats.field=status&facet.pivot" "=userID,status ", "*%3A*&wt=json&wt=json&fl=type&indent=true&facet=true&stats=true" "&stats.field=status&facet.pivot=type ", "*%3A*&wt=json&wt=json&fl=type&indent=true&facet=true&stats=true&stats.field=status" "&facet.range={!tag=r1}date&f.date.facet.range.start=2020-11-01T23:59:59Z" "&f.date.facet.range.end=2020-12-01T23:59:59Z&f.date.facet.range.gap=%2B1DAY" "&facet.pivot={!range=r1}status", "*%3A*&wt=json&wt=json&fl=type&indent=true&facet=true&stats=true&stats.field=status" "&facet.range={!tag=r1}date&f.date.facet.range.start=2020-10-01T23:59:59Z" "&f.date.facet.range.end=2020-11-01T23:59:59Z&f.date.facet.range.gap=%2B1DAY" "&facet.pivot={!range=r1}status" ] # Run this with a pool of 5 agents having a chunksize of 3 until finished agents = 8 chunksize = 8 with Pool(processes=agents) as pool: result = pool.map(execute_solr_url_query_by_facet, query, chunksize) print("All tasks complete") director = Director() builder = ConcreteDashboardBuilder() director.builder = builder # print(result[0]) director.build_UF( result[0]['facet_counts']['facet_ranges']['date']['counts'], ['OK', 'UF', 'IF']) director.build_IF( result[1]['facet_counts']['facet_ranges']['date']['counts'], ['OK', 'UF', 'IF']) director.build_OK( result[2]['facet_counts']['facet_ranges']['date']['counts'], ['OK', 'UF', 'IF']) director.build_response(result[3]['response']["docs"], ['mean']) director.build_NPS_score( result[4]['facet_counts']['facet_pivot']['userID,status'], ['OK', 'UF', 'IF']) director.build_activity_by_action( result[5]['facet_counts']['facet_pivot']['type'], ['type']) director.build_customer_experience( result[6]['facet_counts']['facet_pivot'], 'current') director.build_customer_experience( result[7]['facet_counts']['facet_pivot'], 'previous') print("All tasks complete") nps_scores = builder.customerData.getNPSScore() customer_experience = builder.customerData.getCustomerExperience() activityByAction = builder.customerData.getActivityByApi() month_scores = [] for nps1 in nps_scores: for nps in nps1: if nps in 'score': month_scores.append(nps1[nps]) return jsonify({ 'reliability': builder.customerData.getReliabilityData(), 'availability': builder.customerData.getAvailabilityData(), 'response': builder.customerData.getResponseData(), 'satisfactions': calculate_satisfaction_score(month_scores), 'activityByAction': user_activity_by_apy(activityByAction), 'experience': customer_experience, 'npsScore': calculate_nps(month_scores), 'monthScore': calculate_month_score(month_scores) })