代码实现
url(r'client/service/report/$',api_views.service_report),
@csrf_exempt
def service_report(request):
print("client data:",request.POST)
if request.method == 'POST':
#REDIS_OBJ.set("test_alex",'hahaha')
try:
print('host=%s, service=%s' %(request.POST.get('client_id'),request.POST.get('service_name') ) )
data = json.loads(request.POST['data'])
#print(data)
#StatusData_1_memory_latest
client_id = request.POST.get('client_id')
service_name = request.POST.get('service_name')
#把数据存下来
data_saveing_obj = data_optimization.DataStore(client_id,service_name,data,REDIS_OBJ)
#redis_key_format = "StatusData_%s_%s_latest" %(client_id,service_name)
#data['report_time'] = time.time()
#REDIS_OBJ.lpush(redis_key_format,json.dumps(data))
#同时触发trigger检查
print("-------触发trigger检查---------")
host_obj = models.Host.objects.get(id=client_id)
service_triggers = get_host_triggers(host_obj)
trigger_handler = data_processing.DataHandler(settings,connect_redis=False)
for trigger in service_triggers:
trigger_handler.load_service_data_and_calulating(host_obj,trigger,REDIS_OBJ)
print("service trigger::",service_triggers)
except IndexError as e:
print('----->err:',e)
return HttpResponse(json.dumps("---report success---"))