data_manager.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #ifndef __DATA_MANAGER_H__
  2. #define __DATA_MANAGER_H__
  3. #include <string>
  4. #include <stdint.h>
  5. #include <chrono>
  6. #include <vector>
  7. #include <set>
  8. #include "database_connection.h"
  9. #include "data_conf.h"
  10. class QueryInfo
  11. {
  12. public:
  13. uint64_t id;
  14. std::string key_info;
  15. std::string invisible_time;
  16. };
  17. class DataManager
  18. {
  19. public:
  20. DataManager();
  21. DataManager(const ConfigParam& config_param);
  22. virtual ~DataManager();
  23. int ConnectAgent();
  24. int DoProcess();
  25. int DoTaskOnce();
  26. void SetTimeRule(const std::string& time_rule);
  27. void SetDataRule(const std::string& data_rule){
  28. data_rule_ = data_rule;
  29. }
  30. virtual int GetLastId(uint64_t& last_delete_id, std::string& last_invisible_time);
  31. std::string ConstructQuerySql(uint64_t last_delete_id, std::string last_invisible_time);
  32. virtual int DoQuery(const std::string& query_sql, std::vector<QueryInfo>& query_info_vec);
  33. std::set<std::string> ConstructDeleteSql(const std::string& key);
  34. virtual int DoDelete(const std::string& delete_sql);
  35. virtual int UpdateLastDeleteId();
  36. std::set<std::string> splitStr(const std::string& src, const std::string& separate_character);
  37. private:
  38. std::string data_rule_; // example: status=0
  39. std::string operate_time_rule_; // example: 0 */5 * * * ?
  40. uint32_t single_query_cnt_;
  41. std::string table_name_;
  42. std::string key_field_name_;
  43. std::string life_cycle_table_name_;
  44. std::string hot_db_name_;
  45. std::string cold_db_name_;
  46. std::time_t next_process_time_;
  47. CDBConn* db_conn_;
  48. uint64_t last_delete_id_;
  49. std::string last_invisible_time_;
  50. };
  51. #endif