Browse Source

完善告警逻辑,增量发送数据

lixioayao 5 years ago
parent
commit
95cd124a19
2 changed files with 6 additions and 9 deletions
  1. 5 8
      module_service/module_web.cpp
  2. 1 1
      module_service/module_web.h

+ 5 - 8
module_service/module_web.cpp

@@ -97,7 +97,7 @@ void module_web::response_login()
 void module_web::run()
 {
     std::vector<std::shared_ptr<ya_event>> arr;
-    _get_all_events(arr);
+    _get_all_events(arr,true);
 
     if(!arr.empty())//发送给web端
     {
@@ -115,12 +115,14 @@ void module_web::run()
     }
 }
 
-void module_web::_get_all_events(std::vector<std::shared_ptr<ya_event>>& arr)
+void module_web::_get_all_events(std::vector<std::shared_ptr<ya_event>>& arr,bool f)
 {
     auto _map = event_list::instance()->m_map;
     auto it_map = _map.begin();
     for(;it_map!=_map.end();++it_map)
     {
+        if(f && it_map->second->m_is_sent)continue;
+        else it_map->second->m_is_sent=true;
         arr.push_back(it_map->second);
     }
 }
@@ -129,18 +131,13 @@ void module_web::_get_all_events(std::vector<std::shared_ptr<ya_event>>& arr)
 void module_web::_delete_end(std::vector<std::shared_ptr<ya_event>>& arr)
 {
     std::vector<uint64_t> todelete;
+
     auto arr_iter = arr.begin();
     for(;arr_iter!=arr.end();++arr_iter)
-    {
         if((*arr_iter)->is_end())//删除掉已经处理的
-        {
             todelete.push_back((*arr_iter)->get_list_id());
-        }
-    }
 
     if(!todelete.empty())
-    {
         event_list::instance()->remove(todelete);
-    }
 }
 

+ 1 - 1
module_service/module_web.h

@@ -62,7 +62,7 @@ private:
     void run();
 
     ///获取所有的告警事件
-    void _get_all_events(std::vector<std::shared_ptr<ya_event>>& arr);
+    void _get_all_events(std::vector<std::shared_ptr<ya_event>>& arr,bool f=false);
 
     ///在全局列表中删除已经处理或结束了的告警
     void _delete_end(std::vector<std::shared_ptr<ya_event>>& arr);