def get_throughput_data(request, taskname=None): all_data = [] description = {} description['timestamp'] = ("DateTime", "timestamp") description['tasks'] = ("number", "tasks") now = datetime.datetime.now() timerange = (now-datetime.timedelta(seconds=120), now) interval = 2 throughputs = calculate_throughputs(taskname, timerange, interval) for i, p in enumerate(throughputs): data = {} tdiff = now-datetime.timedelta(seconds=120) data['timestamp'] = tdiff + datetime.timedelta(seconds=interval*i) data['tasks'] = p all_data.append(data) data_table = gviz_api.DataTable(description) data_table.LoadData(all_data) if "tqx" in request.GET: tqx = request.GET['tqx'] params = dict([p.split(':') for p in tqx.split(';')]) reqId = params['reqId'] return HttpResponse( data_table.ToJSonResponse( columns_order=("timestamp", "tasks"), req_id=reqId) ) return HttpResponse( data_table.ToJSonResponse( columns_order=("timestamp", "tasks")) )
def view_throughputs(request, taskname=None): # Simple view, mostly for testing purposes at this point. now = datetime.datetime.now() timerange = (now-datetime.timedelta(seconds=120), now) interval = 15 throughputs = calculate_throughputs(taskname, timerange, interval) return HttpResponse(str(throughputs))
def test_basic(self): taskname = None now = datetime.datetime.now() timerange = (now-datetime.timedelta(seconds=45), now) interval = 5 seq = calculate_throughputs(taskname, timerange, interval) self.assertEquals(len(seq),9) # 9 = 45/5 self.assertEquals(sum(seq), 0.)
def test_oneTask(self): taskname = None tasks.simple_test.apply_async() time.sleep(4.0) now = datetime.datetime.now() timerange = (now-datetime.timedelta(seconds=45), now) interval = 5 seq = calculate_throughputs(taskname, timerange, interval) ##print seq self.assertEquals(len(seq),9) # 9 = 45/5 self.assertTrue(sum(seq) > 0.)