X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/77b9edd1e99f8551f49a28c696431d29941dd6b7..9a9a6f2b66d1ce4459bff4bf1926f504fc26e515:/utils/update.php diff --git a/utils/update.php b/utils/update.php index 93b5ab09..270850f9 100755 --- a/utils/update.php +++ b/utils/update.php @@ -47,7 +47,6 @@ showUsage($aCMDOptions, true, 'Select either import of hourly or daily'); } - if (!isset($aResult['index-instances'])) $aResult['index-instances'] = 1; if (!isset($aResult['index-rank'])) $aResult['index-rank'] = 0; /* @@ -360,18 +359,25 @@ if ($aResult['index']) { + if (!isset($aResult['index-instances'])) $aResult['index-instances'] = 1; passthru(CONST_BasePath.'/nominatim/nominatim -i -d '.$aDSNInfo['database'].' -t '.$aResult['index-instances'].' -r '.$aResult['index-rank']); } if ($aResult['import-osmosis'] || $aResult['import-osmosis-all']) { + + if (strpos(CONST_Replication_Url, 'download.geofabrik.de') !== false && CONST_Replication_Update_Interval < 86400) { + echo "Error: Update interval too low for download.geofabrik.de. Please check install documentation (http://wiki.openstreetmap.org/wiki/Nominatim/Installation#Updates)\n"; + exit; + } + $sImportFile = CONST_BasePath.'/data/osmosischange.osc'; $sOsmosisCMD = CONST_Osmosis_Binary; $sOsmosisConfigDirectory = CONST_BasePath.'/settings'; $sCMDDownload = $sOsmosisCMD.' --read-replication-interval workingDirectory='.$sOsmosisConfigDirectory.' --simplify-change --write-xml-change '.$sImportFile; $sCMDCheckReplicationLag = $sOsmosisCMD.' -q --read-replication-lag workingDirectory='.$sOsmosisConfigDirectory; $sCMDImport = $sOsm2pgsqlCmd.' '.$sImportFile; - $sCMDIndex = $sBasePath.'/nominatim/nominatim -i -d '.$aDSNInfo['database'].' -t '.$aResult['index-instances']; + $sCMDIndex = $sBasePath.'/nominatim/nominatim -i -d '.$aDSNInfo['database']; if (!$aResult['no-npi']) { $sCMDIndex .= '-F '; } @@ -454,7 +460,16 @@ $sBatchEnd = getosmosistimestamp($sOsmosisConfigDirectory); // Index file - $sThisIndexCmd = $sCMDIndex; + if (!isset($aResult['index-instances'])) + { + if (getLoadAverage() < 15) + $iIndexInstances = 2; + else + $iIndexInstances = 1; + } else + $iIndexInstances = $aResult['index-instances']; + + $sThisIndexCmd = $sCMDIndex.' -t '.$iIndexInstances; if (!$aResult['no-npi']) { @@ -525,7 +540,7 @@ if ( CONST_Replication_Update_Interval > 60 ) { - $iSleep = round(CONST_Replication_Update_Interval*0.8); + $iSleep = max(0,(strtotime($sBatchEnd)+CONST_Replication_Update_Interval-time())); } else {