]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/nominatim/templates/default/updater.erb
Avoid exception iterating a non-existent directory
[chef.git] / cookbooks / nominatim / templates / default / updater.erb
index 5c5a4448b5f6898e7ca99e628d24bb8abbd18d1d..ade5845aa6fda850f5d16801cef83c1afb012d3e 100644 (file)
@@ -5,28 +5,38 @@
 # Change to Nominatim directory
 cd <%= @bindir %>
 
+num_cpus=`cat /proc/cpuinfo | grep -c processor`
+num_cpus=$((num_cpus - 2))
+
 while [ ! -f "<%= @update_stop_file %>" ]
 do
     # Send output to the log (logrotatable)
     exec >> <%= @logfile %> 2>&1
-    starttime=`date +%s`
 
-    ./utils/update.php --no-npi --import-osmosis
+    current_load=`cat /proc/loadavg | cut -f 2 -d ' ' | sed 's:\..*::'`
 
+    if [[ $current_load -lt $num_cpus ]]
+    then
+        INST=2
+    else
+        INST=1
+    fi
+
+    ./utils/update.php --import-osmosis --index-instances $INST
+
+<% if node[:nominatim][:enable_git_updates] -%>
+    pushd <%= @srcdir %>
     if git fetch origin; then
       # will trigger recompilation if necessary
       git merge origin/<%= @branch %>
     else
       echo "WARNING: git fetch failed."
     fi
+    popd
+<% end -%>
 
-    # sleep a bit if updates take less than a minute
-    endtime=`date +%s`
-    elapsed=$((endtime - starttime))
-    if [[ $elapsed -lt 60 ]]
-    then
-        sleepy=$((60 - $elapsed))
-        echo "Sleeping for ${sleepy}s..."
-        sleep $sleepy
+    if [ -f "<%= @update_maintenance_trigger %>" ]; then
+        rm <%= @update_maintenance_trigger %>
+        ./utils/update.php --calculate-postcodes
     fi
 done