Skip to content

Commit 9ce62a0

Browse files
authored
[Fixes #594] Alignment of geonode-project 5.0.x to GeoNode 5.0.x (#595)
* alignment of geonode-project 5 to GeoNode 5 * adding harvesting monitoring setting
1 parent 6d2f82c commit 9ce62a0

File tree

3 files changed

+64
-12
lines changed

3 files changed

+64
-12
lines changed

.env.sample

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ DOCKER_ENV=production
77
DOCKER_API_VERSION="1.24"
88
BACKUPS_VOLUME_DRIVER=local
99

10-
GEONODE_BASE_IMAGE_VERSION=master
11-
NGINX_BASE_IMAGE_VERSION=1.26.3-latest
10+
GEONODE_BASE_IMAGE_VERSION=5.0.x
11+
NGINX_BASE_IMAGE_VERSION=1.28.0-v1
1212
LETSENCRYPT_BASE_IMAGE_VERSION=2.6.0-latest
13-
GEOSERVER_BASE_IMAGE_VERSION=2.24.4-latest
14-
GEOSERVER_DATA_BASE_IMAGE_VERSION=2.24.4-latest
13+
GEOSERVER_BASE_IMAGE_VERSION=2.27.3-latest
14+
GEOSERVER_DATA_BASE_IMAGE_VERSION=2.27.3-latest
1515
POSTGRES_BASE_IMAGE_VERSION=15-3.5-latest
1616

1717
C_FORCE_ROOT=1
@@ -249,6 +249,10 @@ LDAP_GROUP_PROFILE_MEMBER_ATTR=uniqueMember
249249
# CELERY__LOG_FILE="/var/log/celery.log"
250250
# CELERY__WORKER_NAME="worker1@%h"
251251

252+
# Monitoring configuration
253+
HARVESTING_MONITOR_ENABLED=True
254+
HARVESTING_MONITOR_DELAY=60
255+
252256
# PostgreSQL
253257
POSTGRESQL_MAX_CONNECTIONS=200
254258

src/celery-cmd

Lines changed: 54 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,65 @@ CELERY_APP=${CELERY_APP:-"geonode.celery_app:app"}
66
CELERY__STATE_DB=${CELERY__STATE_DB:-"/mnt/volumes/statics/worker@%h.state"}
77
# expressed in KB
88
CELERY__MAX_MEMORY_PER_CHILD=${CELERY__MAX_MEMORY_PER_CHILD:-"200000"}
9-
CELERY__AUTOSCALE_VALUES=${CELERY__AUTOSCALE_VALUES:-"15,10"}
9+
CELERY__AUTOSCALE_VALUES=${CELERY__AUTOSCALE_VALUES:-"10,5"}
1010
CELERY__MAX_TASKS_PER_CHILD=${CELERY__MAX_TASKS_PER_CHILD:-"10"}
11-
CELERY__OPTS=${CELERY__OPTS:-"--without-gossip --without-mingle -Ofair -B -E"}
12-
CELERY__BEAT_SCHEDULE=${CELERY__BEAT_SCHEDULE:-"celery.beat:PersistentScheduler"}
13-
CELERY__LOG_LEVEL=${CELERY__LOG_LEVEL:-"INFO"}
11+
CELERY__OPTS=${CELERY__OPTS:-"--without-gossip --without-mingle -Ofair -E"}
12+
CELERY__LOG_LEVEL=${CELERY__LOG_LEVEL:-"ERROR"}
1413
CELERY__LOG_FILE=${CELERY__LOG_FILE:-"/var/log/celery.log"}
1514
CELERY__WORKER_NAME=${CELERY__WORKER_NAME:-"worker1@%h"}
1615
CELERY__WORKER_CONCURRENCY=${CELERY__WORKER_CONCURRENCY:-"4"}
1716

17+
# Celery beat settings
18+
CELERY__BEAT_SCHEDULE=${CELERY__BEAT_SCHEDULE:-"celery.beat:PersistentScheduler"}
19+
CELERY__BEAT_LOG=${CELERY__BEAT_LOG:-"/var/log/celery_beat.log"}
20+
21+
# Harvester settings
22+
CELERY__HARVESTER_WORKER_NAME=${CELERY__HARVESTER_WORKER_NAME:-"harvesting_worker@%h"}
23+
CELERY__HARVESTER_CONCURRENCY=${CELERY__HARVESTER_CONCURRENCY:-"10"}
24+
CELERY__HARVESTER_AUTOSCALE_VALUES=${CELERY__HARVESTER_AUTOSCALE_VALUES:-"15,10"}
25+
CELERY__HARVESTER_MAX_MEMORY_PER_CHILD=${CELERY__MAX_MEMORY_PER_CHILD:-"500000"}
26+
27+
# --- FIX: Remove stale Beat pidfile before starting beat ---
28+
BEAT_PIDFILE="/tmp/celerybeat.pid"
29+
30+
if [ -f "$BEAT_PIDFILE" ]; then
31+
PID=$(cat "$BEAT_PIDFILE" 2>/dev/null)
32+
33+
# If PID exists and is running → warn but continue (avoid killing)
34+
if kill -0 "$PID" 2>/dev/null; then
35+
echo "WARNING: Celery Beat seems to be running already (PID $PID). Removing stale pidfile anyway."
36+
else
37+
echo "Removing stale Celery Beat pidfile: $BEAT_PIDFILE"
38+
fi
39+
40+
rm -f "$BEAT_PIDFILE"
41+
fi
42+
# --- END FIX ---
43+
44+
echo "Starting Celery Beat..."
45+
$CELERY_BIN -A $CELERY_APP beat --scheduler=$CELERY__BEAT_SCHEDULE \
46+
--loglevel=$CELERY__LOG_LEVEL -f $CELERY__BEAT_LOG --pidfile=/tmp/celerybeat.pid &
47+
48+
echo "Starting Default Celery Worker..."
1849
$CELERY_BIN -A $CELERY_APP worker --autoscale=$CELERY__AUTOSCALE_VALUES \
1950
--max-memory-per-child=$CELERY__MAX_MEMORY_PER_CHILD $CELERY__OPTS \
20-
--statedb=$CELERY__STATE_DB --scheduler=$CELERY__BEAT_SCHEDULE \
51+
--statedb=$CELERY__STATE_DB \
2152
--loglevel=$CELERY__LOG_LEVEL -n $CELERY__WORKER_NAME -f $CELERY__LOG_FILE \
22-
--concurrency=$CELERY__WORKER_CONCURRENCY --max-tasks-per-child=$CELERY__MAX_TASKS_PER_CHILD
53+
--concurrency=$CELERY__WORKER_CONCURRENCY --max-tasks-per-child=$CELERY__MAX_TASKS_PER_CHILD \
54+
-X harvesting &
55+
56+
echo "Starting Harvester Celery Worker..."
57+
$CELERY_BIN -A $CELERY_APP worker -Q harvesting \
58+
--autoscale=$CELERY__HARVESTER_AUTOSCALE_VALUES \
59+
--max-memory-per-child=$CELERY__HARVESTER_MAX_MEMORY_PER_CHILD \
60+
--loglevel=$CELERY__LOG_LEVEL \
61+
-n $CELERY__HARVESTER_WORKER_NAME \
62+
--concurrency=$CELERY__HARVESTER_CONCURRENCY \
63+
-f $CELERY__LOG_FILE &
64+
65+
# Wait for any process to exit
66+
wait -n
67+
68+
# Exit with the status of the process that exited first
69+
# Docker will restart the container if this is non-zero (i.e., a failure)
70+
exit $?

src/requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
-e git+https://github.com/GeoNode/geonode-mapstore-client.git@master#egg=django_geonode_mapstore_client # Commented otherwise we get conflicts with the git deps from geonode master
2-
-e git+https://github.com/GeoNode/geonode.git@master#egg=GeoNode
1+
-e git+https://github.com/GeoNode/geonode-mapstore-client.git@5.0.x#egg=django_geonode_mapstore_client
2+
-e git+https://github.com/GeoNode/geonode.git@5.0.x#egg=GeoNode

0 commit comments

Comments
 (0)