X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/c3f9cf702ba600099b52905299f9551301c39b60..6769f06b626d566508eaa96a9892d05aeb331f24:/cookbooks/nominatim/templates/default/updater.erb?ds=sidebyside diff --git a/cookbooks/nominatim/templates/default/updater.erb b/cookbooks/nominatim/templates/default/updater.erb index acadc9a02..cfa5de79b 100644 --- a/cookbooks/nominatim/templates/default/updater.erb +++ b/cookbooks/nominatim/templates/default/updater.erb @@ -2,31 +2,41 @@ # DO NOT EDIT - This file is being maintained by Chef -# Send output to the log -exec >> /var/log/nominatim/update.log 2>&1 - # Change to Nominatim directory -DIR="$( cd "$( dirname "$0" )" && pwd )" -cd $DIR/.. +cd <%= @bindir %> + +num_cpus=`cat /proc/cpuinfo | grep -c processor` +num_cpus=$((num_cpus - 2)) -while true +while [ ! -f "<%= @update_stop_file %>" ] do - starttime=`date +%s` + # Send output to the log (logrotatable) + exec >> <%= @logfile %> 2>&1 - ./utils/update.php --no-npi --import-osmosis + current_load=`cat /proc/loadavg | cut -f 2 -d ' ' | sed 's:\..*::'` - # will trigger recompilation if necessary - if ! git pull; then - echo "WARNING: git update failed." + if [[ $current_load -lt $num_cpus ]] + then + INST=4 + else + INST=2 fi - # 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 + ./nominatim replication --once --threads $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 -%> + + if [ -f "<%= @update_maintenance_trigger %>" ]; then + rm <%= @update_maintenance_trigger %> + ./nominatim refresh --postcodes --threads 4 -v fi done