X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/8c0c354ccdecd8772cb32087d2c666dcbc053fc1..90e8109a883d6bbae266acf94a90b54526b3d443:/cookbooks/nominatim/templates/default/updater.erb diff --git a/cookbooks/nominatim/templates/default/updater.erb b/cookbooks/nominatim/templates/default/updater.erb index bf9a00101..d3fd0d937 100644 --- a/cookbooks/nominatim/templates/default/updater.erb +++ b/cookbooks/nominatim/templates/default/updater.erb @@ -5,13 +5,24 @@ # 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=4 + else + INST=2 + fi + + ./nominatim replication --once --threads $INST <% if node[:nominatim][:enable_git_updates] -%> pushd <%= @srcdir %> @@ -24,13 +35,19 @@ do 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 %> + ./nominatim refresh --postcodes --threads 4 -v +<% if node[:nominatim][:enable_qa_tiles] -%> + pushd <%= @qabindir %> + if python3 cli.py --execute-all; then + rm -rf "<%= @qadatadir %>/old" + if [ -d "<%= @qadatadir %>/current" ]; then + mv "<%= @qadatadir %>/current" "<%= @qadatadir %>/old" + fi + mv "<%= @qadatadir %>/new" "<%= @qadatadir %>/current" + fi + popd +<% end -%> fi done