X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/120d866e3e0afa2de041e60b79d622dc9f7a8cb7..4563750453ede7af40a7ffd75c90327f4e56bff8:/utils/update.php diff --git a/utils/update.php b/utils/update.php index fd6acdbb..9a509fdf 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,6 +359,7 @@ 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']); } @@ -370,7 +370,6 @@ echo "Error: Update interval too low for download.geofabrik.de. Please check install documentation (http://wiki.openstreetmap.org/wiki/Nominatim/Installation#Updates)\n"; exit; } -exit; $sImportFile = CONST_BasePath.'/data/osmosischange.osc'; $sOsmosisCMD = CONST_Osmosis_Binary; @@ -378,7 +377,7 @@ exit; $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 '; } @@ -447,7 +446,7 @@ exit; if ($iErrorLevel) { echo "Error: $iErrorLevel\n"; - exit; + exit($iErrorLevel); } echo "Completed for $sBatchEnd in ".round((time()-$fCMDStartTime)/60,2)." minutes\n"; $sSQL = "INSERT INTO import_osmosis_log values ('$sBatchEnd',$iFileSize,'".date('Y-m-d H:i:s',$fCMDStartTime)."','".date('Y-m-d H:i:s')."','osm2pgsql')"; @@ -461,7 +460,16 @@ exit; $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']) { @@ -470,7 +478,7 @@ exit; if (PEAR::isError($iFileID)) { echo $iFileID->getMessage()."\n"; - exit; + exit(-1); } $sFileDir = CONST_BasePath.'/export/diff/'; $sFileDir .= str_pad(floor($iFileID/1000000), 3, '0', STR_PAD_LEFT); @@ -496,7 +504,7 @@ exit; if ($iErrorLevel) { echo "Error: $iErrorLevel\n"; - exit; + exit($iErrorLevel); } if (!$aResult['no-npi']) @@ -511,7 +519,7 @@ exit; if ($iErrorLevel) { echo "Error: $iErrorLevel\n"; - exit; + exit($iErrorLevel); } rename($sFileDir.'/'.str_pad($iFileID % 1000, 3, '0', STR_PAD_LEFT).".npi.out.bz2", @@ -532,7 +540,7 @@ exit; 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 {