@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);
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";
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.";
}
} 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";
// 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));