min_system.cpp 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. //
  2. // Created by Administrator on 2019/3/15.
  3. //
  4. #include "min_system.h"
  5. #include "ya_setting.h"
  6. #include "forbid_staff_down_mine.h"
  7. #include <ev++.h>
  8. #include "card.h"
  9. #include "log.h"
  10. #include "config_file.h"
  11. min_system::min_system ()
  12. {
  13. m_thread.reset(new std::thread(std::bind(&min_system::run,this)));
  14. m_lastTimer = time(nullptr) ;
  15. m_interval_time = 30;
  16. }
  17. void min_system::initSystem(config_file * config)
  18. {
  19. std_info("当前系统: 采集最小系统,和虹膜考勤系统相关! 初始化最小系统");
  20. if (config)
  21. {
  22. m_interval_time = config->get("min_system_interval_time",60);
  23. }
  24. }
  25. //定时重新加载相关数据
  26. void min_system::on_timer_load()
  27. {
  28. if (!CYaSetting::g_minSystem)
  29. {
  30. return ;
  31. }
  32. forbid_staff_down_mine::instance()->on_load_data();
  33. }
  34. void min_system::run()
  35. {
  36. ev::timer timer_1s(*this);
  37. timer_1s.set<min_system,&min_system::on_time>(this);
  38. timer_1s.start(m_interval_time,m_interval_time);
  39. ev::dynamic_loop::run(0);
  40. //log_info("worker_thread exit....");
  41. }
  42. void min_system::on_time()
  43. {
  44. std_info("min_system::on_time ");
  45. time_t cur_time = time(nullptr);
  46. s_min_system.on_timer_load();
  47. if (cur_time - s_min_system.m_lastTimer > 60 * 60)
  48. {
  49. card_list::instance()->init_staffer("");
  50. }
  51. s_min_system.m_lastTimer = time(nullptr);
  52. }