idcol_online_alarm.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. // 离线故障处理
  3. ini_set('display_errors', 1);
  4. require_once './DB.php';
  5. date_default_timezone_set('Asia/Shanghai');
  6. $config = [
  7. 'hostname' => 'rm-wz98r5cn33zq4ou980o.mysql.rds.aliyuncs.com',
  8. 'username' => 'idcol20',
  9. 'password' => 'idcol@1234',
  10. 'dbname' => 'idcol',
  11. ];
  12. $begin = date('H:i',time());
  13. while (1) {
  14. $db = new Db($config);
  15. // 生成离线故障
  16. $sql = 'SELECT L.id FROM lampinfo as L left join warning_info_log AS WI on WI.lampid = L.id and WI.onlinestatus = 1 and WI.status = 0 where L.netstatus = 0 and WI.id is null';
  17. $list = $db->query($sql);
  18. // var_dump($list);die;
  19. foreach ($list as $value) {
  20. $alarm_info = array();
  21. $alarm_info['lampid'] = $value['id'];
  22. $alarm_info['onlinestatus'] = 1;
  23. $alarm_info['updatetime'] = date('Y-m-d H:i:s',time()-8*3600);
  24. $db->table('warning_info_log')->insert($alarm_info);
  25. }
  26. // 离线故障解除
  27. $sql = 'SELECT WI.id FROM warning_info_log as WI left join lampinfo AS L on WI.lampid = L.id where L.netstatus = 1 and WI.onlinestatus = 1 and WI.status != 1 and L.id is not null';
  28. $list = $db->query($sql);
  29. foreach ($list as $key => $value) {
  30. $db->table('warning_info_log')->where('id='.$value['id'])->update(['status'=>1]);
  31. }
  32. $db->close();
  33. $end = date('H:i',time());
  34. if ($end == $begin) {
  35. sleep(1);
  36. continue;
  37. }
  38. $begin = $end;
  39. }