public static function set($report_id, $handler, $array, $use_handler_key = null)
 {
     $data = new HeartbeatReportData();
     $data->report_id = $report_id;
     $data->handler = $handler;
     if (!$use_handler_key) {
         $data->keys = self::formatValue(array_keys($array), true);
     } else {
         $data->keys = self::OTHER_KEYS . $use_handler_key;
     }
     $data->value = self::formatValue($array, true);
     if ($data->validate()) {
         return $data->save();
     }
     return false;
 }
 /**
  * push data in db
  * @param $report_id
  * @return bool flag
  */
 public function push($report_id)
 {
     // use array key from other
     $use_key = array('db_tables_rows' => 'db_tables_size', 'db_long_tables_rows' => 'db_long_tables_size', 'stations_logger' => 'stations', 'stations_communication_type' => 'stations', 'stations_message_interval' => 'stations', 'stations_message_count' => 'stations', 'stations_message_expected' => 'stations', 'stations_message_error' => 'stations', 'stations_message_is_processing' => 'stations', 'stations_message_last' => 'stations', 'stations_sensor_bv' => 'stations', 'stations_schedule_synop' => 'stations', 'stations_schedule_bufr' => 'stations', 'stations_schedule_speci' => 'stations', 'stations_schedule_metar' => 'stations', 'stations_schedule_data_export' => 'stations');
     //miss_key
     $miss_key = array('db_small_stat', 'db_long_small_stat');
     $flag = true;
     try {
         foreach ($this as $var => $val) {
             if (!is_null($val) && !in_array($var, $miss_key)) {
                 $flag = $flag && HeartbeatReportData::set($report_id, $var, $val, $use_key[$var]);
             }
         }
     } catch (Exception $e) {
         return false;
     }
     return $flag;
 }