コード例 #1
0
ファイル: rrd_update.php プロジェクト: nmred/swansoft
<?php

require_once 'core.php';
use lib\rrd_store\sw_update;
$data = array(1 => 3, 2 => 3, 3 => 3, 4 => 3, 5 => 3, 6 => 3);
$time = time();
$rev = sw_update::update('2_4', $data, $time);
sleep(2);
$data = array(8 => 2);
$rev = sw_update::update('2_4', $data, $time);
コード例 #2
0
ファイル: sw_rrd_store.class.php プロジェクト: nmred/swansoft
 /**
  * 处理收到的信息并转发出去
  *
  * @param string $data 收到的信息
  * @param string $client_key 客户端连接的 key
  * @return void
  */
 public function process_receive_data($job)
 {
     $data = $job->workload();
     $this->log("log rrd_store " . $data, LOG_DEBUG);
     $data = rtrim($data);
     $data = json_decode($data, true);
     if (isset($data[1])) {
         list($device_id, $monitor_id, $metric_id) = explode('_', $data[0]);
         $monitor_key = $device_id . '_' . $monitor_id;
         if (isset($this->__rrd_cache[$monitor_key]['data']) && isset($this->__rrd_cache[$monitor_key]['time']) && $data[1]['time'] >= $this->__rrd_cache[$monitor_key]['time'] + 5) {
             try {
                 sw_update::update($monitor_key, $this->__rrd_cache[$monitor_key]['data'], $this->__rrd_cache[$monitor_key]['time']);
                 $this->log('update success data:' . var_export($this->__rrd_cache[$monitor_key], true), LOG_INFO);
             } catch (\Exception $e) {
                 $this->log($e->getMessage(), LOG_INFO);
             }
             $this->__rrd_cache[$monitor_key]['data'] = array();
             $this->__last_time[$monitor_key] = $this->__rrd_cache[$monitor_key]['time'];
         }
         if (!isset($this->__rrd_cache[$monitor_key]['data'])) {
             $this->__rrd_cache[$monitor_key]['data'] = array();
         }
         // 第一次存储没有 __last_time 可以通过
         if (!isset($this->__last_time[$monitor_key]) || $data[1]['time'] > $this->__last_time[$monitor_key]) {
             $this->__rrd_cache[$monitor_key]['data'][$metric_id] = $data[1]['value'];
             $this->__rrd_cache[$monitor_key]['time'] = $data[1]['time'];
         }
     }
 }