Skip to content

Commit 5e9278e

Browse files
committed
Update
1 parent ffb072c commit 5e9278e

1 file changed

Lines changed: 29 additions & 19 deletions

File tree

images/tiler-imposm/scripts/refresh_mviews.sh

Lines changed: 29 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ if [ "$REFRESH_PARALLEL" = "true" ]; then
3939
HEAVY_WORK_MEM="${HEAVY_WORK_MEM:-512MB}"
4040
HEAVY_MAINT_MEM="${HEAVY_MAINT_MEM:-4GB}"
4141
else
42-
LIGHT_WORK_MEM="${LIGHT_WORK_MEM:-4GB}"
43-
LIGHT_MAINT_MEM="${LIGHT_MAINT_MEM:-8GB}"
44-
HEAVY_WORK_MEM="${HEAVY_WORK_MEM:-8GB}"
45-
HEAVY_MAINT_MEM="${HEAVY_MAINT_MEM:-16GB}"
42+
LIGHT_WORK_MEM="${LIGHT_WORK_MEM:-2GB}"
43+
LIGHT_MAINT_MEM="${LIGHT_MAINT_MEM:-4GB}"
44+
HEAVY_WORK_MEM="${HEAVY_WORK_MEM:-4GB}"
45+
HEAVY_MAINT_MEM="${HEAVY_MAINT_MEM:-8GB}"
4646
fi
4747

4848
function refresh_mviews_group() {
@@ -62,6 +62,7 @@ function refresh_mviews_group() {
6262
local run_loop="${REFRESH_LOOP:-true}"
6363

6464
while true; do
65+
local connection_error=false
6566
for mview in "${materialized_views[@]}"; do
6667
log_message "[$group_name] Refreshing $mview (work_mem=$work_mem, maintenance_work_mem=$maint_mem)..."
6768
local error_output
@@ -78,17 +79,25 @@ function refresh_mviews_group() {
7879
else
7980
log_message "[$group_name] ❌ ERROR refreshing $mview! Exit code: $exit_code"
8081
log_message "[$group_name] ❌ Error details: $error_output"
81-
if echo "$error_output" | grep -qi "connection\|could not connect\|server closed\|SSL"; then
82-
log_message "[$group_name] ⚠️ Connection error detected. Waiting ${sleep_interval}s before retrying all views..."
82+
if echo "$error_output" | grep -qi "connection\|could not connect\|server closed\|SSL\|recovery mode"; then
83+
log_message "[$group_name] ⚠️ Connection error detected. Waiting 180s for DB to recover..."
84+
connection_error=true
85+
sleep 180
8386
break
8487
fi
8588
fi
8689
done
8790

91+
# If connection error in sequential mode, signal caller to stop
92+
if [ "$connection_error" = true ] && [ "$run_loop" != "true" ]; then
93+
log_message "[$group_name] Connection error during single pass. Returning error."
94+
return 2
95+
fi
96+
8897
# If REFRESH_LOOP=false, run once and exit (used in sequential mode)
8998
if [ "$run_loop" != "true" ]; then
9099
log_message "[$group_name] Completed single pass."
91-
return
100+
return 0
92101
fi
93102
sleep "$sleep_interval"
94103
done
@@ -309,24 +318,25 @@ if [ "$REFRESH_PARALLEL" = "true" ]; then
309318
else
310319
log_message "Starting SEQUENTIAL refresh of materialized views..."
311320
REFRESH_LOOP=false
321+
SEQUENTIAL_SLEEP_INTERVAL="${SEQUENTIAL_SLEEP_INTERVAL:-120}"
312322
while true; do
313323
start_time=$SECONDS
314324

315325
# Heavy groups
316-
refresh_mviews_group "ADMIN_BOUNDARIES_LINES" 1 heavy "${admin_boundaries_lines_views[@]}"
317-
refresh_mviews_group "ADMIN_BOUNDARIES_AREAS_CENTROIDS" 1 heavy "${admin_boundaries_areas_centroids_views[@]}"
318-
refresh_mviews_group "TRANSPORTS" 1 heavy "${transport_views[@]}"
326+
refresh_mviews_group "ADMIN_BOUNDARIES_LINES" 1 heavy "${admin_boundaries_lines_views[@]}" || true
327+
refresh_mviews_group "ADMIN_BOUNDARIES_AREAS_CENTROIDS" 1 heavy "${admin_boundaries_areas_centroids_views[@]}" || true
328+
refresh_mviews_group "TRANSPORTS" 1 heavy "${transport_views[@]}" || true
319329

320330
# Light groups
321-
refresh_mviews_group "ADMIN_MARITIME_LINES" 1 light "${admin_maritime_lines_views[@]}"
322-
refresh_mviews_group "AMENITY" 1 light "${amenity_views[@]}"
323-
refresh_mviews_group "LANDUSE" 1 light "${landuse_views[@]}"
324-
refresh_mviews_group "OTHERS" 1 light "${others_views[@]}"
325-
refresh_mviews_group "COMMUNICATION" 1 light "${communication_views[@]}"
326-
refresh_mviews_group "PLACES" 1 light "${places_views[@]}"
327-
refresh_mviews_group "WATER" 1 light "${water_views[@]}"
328-
refresh_mviews_group "BUILDINGS" 1 light "${buildings_views[@]}"
329-
refresh_mviews_group "ROUTES" 1 light "${routes_views[@]}"
331+
refresh_mviews_group "ADMIN_MARITIME_LINES" 1 light "${admin_maritime_lines_views[@]}" || true
332+
refresh_mviews_group "AMENITY" 1 light "${amenity_views[@]}" || true
333+
refresh_mviews_group "LANDUSE" 1 light "${landuse_views[@]}" || true
334+
refresh_mviews_group "OTHERS" 1 light "${others_views[@]}" || true
335+
refresh_mviews_group "COMMUNICATION" 1 light "${communication_views[@]}" || true
336+
refresh_mviews_group "PLACES" 1 light "${places_views[@]}" || true
337+
refresh_mviews_group "WATER" 1 light "${water_views[@]}" || true
338+
refresh_mviews_group "BUILDINGS" 1 light "${buildings_views[@]}" || true
339+
refresh_mviews_group "ROUTES" 1 light "${routes_views[@]}" || true
330340

331341
elapsed=$((SECONDS - start_time))
332342
log_message "Sequential refresh cycle completed in ${elapsed}s. Sleeping ${SEQUENTIAL_SLEEP_INTERVAL}s..."

0 commit comments

Comments
 (0)