function updataKml($kmls, $starttime, $file = '', $source = 1, $topic)
{
    //访问API
    $kmlUpdateApi = getConfig('kmlUpdateApi');
    $unique = unique_arr($kmls);
    //去重
    //print_r($unique);exit;
    $soadata = formatApiData($unique);
    //去重
    $returnData = curlPost($kmlUpdateApi, array('data' => $soadata));
    logs($returnData, 1, 'consumer', $topic);
    print_r($returnData);
    exit;
    //logs(' Access :'.$kmlUpdateApi, 1, 'consumer',$topic);
    //logs(' Params is:'.json_encode($data), 1, 'consumer',$topic);
    //logs(' Return is:'.$returnData, 1, 'consumer',$topic);
    $cachePath = getconfig('kmlCachePath');
    $cacheBack = getconfig('kmlCacheBak');
    //验证还回结果
    $objs = json_decode($returnData);
    if (empty($returnData) || $objs->status != 0 || empty($objs->data)) {
        if ($source == 2) {
            $dir = $cacheBack . '/' . date('Y-m-d') . '/' . $topic;
            mkFolder($dir);
            $toPath = $dir . '/' . basename($file);
            moveFile($file, $toPath);
            logs(date('H:i:s') . ' API error:' . $objs->msg . '; file:' . $file . ' has move to ' . $toPath, 1, 'consumer', $topic);
        } else {
            if ($objs->status < 3) {
                $cacheTopicPath = $cachePath . '/' . $topic;
                mkFolder($cacheTopicPath);
                $filename = basename($file);
                $source = $cacheTopicPath . '/' . $filename;
                file_put_contents($source, $data);
                logs(date('H:i:s') . ' API error:' . $objs->msg . '; file:' . $file . ' has backup to ' . $source, 1, 'consumer', $topic);
            } else {
                $backFile = $cacheBack . '/' . basename($file);
                moveFile($file, $backFile);
                logs(date('H:i:s') . ' API error:' . $objs->msg . '; file ' . basename($file) . 'has move to ' . $backFile, 1, 'consumer', $topic);
            }
        }
    }
    if ($source == 2) {
        if (file_exists($file)) {
            unlink($file);
        }
    }
    $arr = object2Array($objs);
    $returnKml = $arr['data'];
    $insertNum = 0;
    if ($source == 1) {
        $insertNum = addKml($returnKml, $kmls, $topic);
    }
    logs('kafka num:' . count($kmls) . ',send data num:' . count($unique) . ', API return:' . count($returnKml) . ',insertNum:' . $insertNum . ',Time: ' . getTime($starttime), 1, 'consumer', $topic);
    $kmls = '';
}
function backFile($f)
{
    $fileArr = explode('/', $f);
    $filename = $fileArr[count($fileArr) - 1];
    //$path = getconfig('kmlBakPath').'/'.date('Y-m-d'));
    //mkFolder($path);
    $path = getconfig('kmlBakPath');
    if (file_exists($f)) {
        //       moveFile($f, $path.'/'.$filename);
        $kmlBakPath = '/home/webdata/htdocs/data/feiniu/snd/NEW_KML_BACKUP/' . date('Y-m-d');
        mkFolder($kmlBakPath);
        moveFile($f, $kmlBakPath . '/' . $filename);
        logs("success move to " . $kmlBakPath);
    }
    logs("success move to bakkup");
}
Example #3
0
function mkFolder($Folder)
{
    if (!is_readable($Folder)) {
        mkFolder(dirname($Folder));
        if (!is_file($Folder)) {
            mkdir($Folder, 0777);
        }
    }
}