]> git.openstreetmap.org Git - nominatim.git/commitdiff
Merge remote-tracking branch 'upstream/master'
authorSarah Hoffmann <lonvia@denofr.de>
Sun, 11 Jun 2017 07:27:18 +0000 (09:27 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Sun, 11 Jun 2017 07:27:18 +0000 (09:27 +0200)
settings/defaults.php
utils/osm_file_date.py
utils/update.php

index 9f694c89fb24699a62ee1d05c09b20b57c98f59a..7c984a542d3770ecaf09534c42a4c1325bf44d35 100644 (file)
@@ -69,11 +69,18 @@ if (isset($_GET['debug']) && $_GET['debug']) @define('CONST_Debug', true);
 @define('CONST_Tablespace_Aux_Data', false);
 @define('CONST_Tablespace_Aux_Index', false);
 
-// Replication settings
+//// Replication settings
+
+// Base URL of replication service
 @define('CONST_Replication_Url', 'http://planet.openstreetmap.org/replication/minute');
-@define('CONST_Replication_Max_Diff_size', '30'); // MB of update data to download per batch
-@define('CONST_Replication_Update_Interval', '60');  // How often upstream publishes diffs
-@define('CONST_Replication_Recheck_Interval', '60'); // How long to sleep if no update found yet
+
+// Maximum size in MB of data to download per batch
+@define('CONST_Replication_Max_Diff_size', '30');
+// How long until the service publishes the next diff
+// (relative to the age of data in the diff).
+@define('CONST_Replication_Update_Interval', '75');
+// How long to sleep when no update could be found
+@define('CONST_Replication_Recheck_Interval', '60');
 
 // Website settings
 @define('CONST_NoAccessControl', true);
index 6418efb0c51b60280ff8aace0ea89ae4272dc242..88d0a4c0a6a46a4acb185f06b1fc8d70897af224 100755 (executable)
@@ -28,6 +28,7 @@ if __name__ == '__main__':
 
     h.apply_file(sys.argv[1])
 
-    print(h.filedate)
-
+    if h.filedate is None:
+        exit(5)
 
+    print(h.filedate)
index 099ca0b3d8e54848a164da0b2c66d6fd67f9ea13..1f036ff000bda0b8a2537c729358655eed12111b 100755 (executable)
@@ -242,9 +242,7 @@ if ($aResult['import-osmosis'] || $aResult['import-osmosis-all']) {
 
     while (true) {
         $fStartTime = time();
-        $iFileSize = 1001;
-
-        $aLastState = chksql($oDB->getRow('SELECT * FROM import_status'));
+        $aLastState = chksql($oDB->getRow('SELECT *, EXTRACT (EPOCH FROM lastimportdate) as unix_ts FROM import_status'));
 
         if (!$aLastState['sequence_id']) {
             echo "Updates not set up. Please run ./utils/update.php --init-updates.\n";
@@ -258,7 +256,7 @@ if ($aResult['import-osmosis'] || $aResult['import-osmosis-all']) {
 
         if ($aLastState['indexed'] == 't') {
             // Sleep if the update interval has not yet been reached.
-            $fNextUpdate = $aLastState['lastimportdate'] + CONST_Replication_Update_Interval;
+            $fNextUpdate = $aLastState['unix_ts'] + CONST_Replication_Update_Interval;
             if ($fNextUpdate > $fStartTime) {
                 $iSleepTime = $fNextUpdate - $fStartTime;
                 echo "Waiting for next update for $iSleepTime sec.";
@@ -285,6 +283,23 @@ if ($aResult['import-osmosis'] || $aResult['import-osmosis-all']) {
                 }
             } while ($iResult);
 
+            // get the newest object from the diff file
+            $sBatchEnd = 0;
+            $iRet = 0;
+            exec(CONST_BasePath.'/utils/osm_file_date.py '.$sImportFile, $sBatchEnd, $iRet);
+            if ($iRet == 5) {
+                echo "Diff file is empty. skipping import.\n";
+                if (!$aResult['import-osmosis-all']) {
+                    exit(0);
+                } else {
+                    continue;
+                }
+            }
+            if ($iRet != 0) {
+                fail('Error getting date from diff file.');
+            }
+            $sBatchEnd = $sBatchEnd[0];
+
             // Import the file
             $fCMDStartTime = time();
             echo $sCMDImport."\n";
@@ -297,14 +312,6 @@ if ($aResult['import-osmosis'] || $aResult['import-osmosis-all']) {
 
             // write the update logs
             $iFileSize = filesize($sImportFile);
-            // get the newest object from the diff file
-            $sBatchEnd = 0;
-            $iRet = 0;
-            exec(CONST_BasePath.'/utils/osm_file_date.py '.$sImportFile, $sBatchEnd, $iRet);
-            if ($iRet != 0) {
-                fail('Error getting date from diff file.');
-            }
-            $sBatchEnd = $sBatchEnd[0];
             $sSQL = "INSERT INTO import_osmosis_log (batchend, batchseq, batchsize, starttime, endtime, event) values ('$sBatchEnd',$iEndSequence,$iFileSize,'".date('Y-m-d H:i:s', $fCMDStartTime)."','".date('Y-m-d H:i:s')."','import')";
             var_Dump($sSQL);
             chksql($oDB->query($sSQL));