kpi configuration (still prototype some data still use manual need to update later)

This commit is contained in:
Alberto-Audrix committed 2026-09-09 16:50:07 +07:00
1 parent e4dbfd0252
commit ed84d989b7
12 files changed
+547 -89

No files matched your search

+5 -2
View File
@@ -1,12 +1,15 @@
SHELL=/bin/sh
PATH=/usr/local/bin:/usr/bin:/bin
# IoT panel: real-time sync every 10 minutes (not gated by 17:00 publish cutoff).
# NOTE: docker/entrypoint-cron.sh regenerates this file from DASHBOARD_PUBLISH_HOUR/MINUTE
# at container start. Keep this checked-in copy as documentation / fallback defaults (17:00).
# IoT panel: real-time sync every 10 minutes (not gated by publish cutoff).
*/10 * * * * root cd /app && /usr/local/bin/python manage.py sync_iot_from_api >> /var/log/cron.log 2>&1
# Chicken counting + mortality + weight edge sync every 10 minutes (not gated by publish cutoff).
*/10 * * * * root cd /app && /usr/local/bin/python manage.py sync_chicken_counting_from_edge >> /var/log/cron.log 2>&1
# Karung-web-admin: every 30s via karung_sync_loop.sh (started by entrypoint-cron.sh).
# Daily publish — recompute KPI rollups from latest karung + counting.
# Daily publish — recompute KPI rollups (hour/minute come from DASHBOARD_PUBLISH_* at runtime).
0 17 * * * root cd /app && /usr/local/bin/python manage.py sync_karung_from_web_admin >> /var/log/cron.log 2>&1 && /usr/local/bin/python manage.py recompute_kpi_rollups >> /var/log/cron.log 2>&1
+22 -1
View File
@@ -4,6 +4,27 @@ cd /app
python manage.py migrate --noinput
printenv | grep -E '^(PATH|DJANGO_|SECRET_|DB_|KARUNG_|IOT_|CHICKEN_COUNTING_|DASHBOARD_|DEBUG|ALLOWED_|BOOTSTRAP_|API_|CORS_|CSRF_|SESSION_)' \
> /etc/environment || true
# Cron min resolution is 1 minute; karung polls every 30s in a side loop.
# Render publish-time cron from DASHBOARD_PUBLISH_* (default 17:00).
PUBLISH_HOUR="${DASHBOARD_PUBLISH_HOUR:-17}"
PUBLISH_MINUTE="${DASHBOARD_PUBLISH_MINUTE:-0}"
CRON_FILE=/etc/cron.d/newdashboard
{
echo "SHELL=/bin/sh"
echo "PATH=/usr/local/bin:/usr/bin:/bin"
echo ""
echo "# IoT panel: real-time sync every 10 minutes (not gated by publish cutoff)."
echo "*/10 * * * * root cd /app && /usr/local/bin/python manage.py sync_iot_from_api >> /var/log/cron.log 2>&1"
echo ""
echo "# Chicken counting + mortality + weight edge sync every 10 minutes."
echo "*/10 * * * * root cd /app && /usr/local/bin/python manage.py sync_chicken_counting_from_edge >> /var/log/cron.log 2>&1"
echo ""
echo "# Karung-web-admin: every 30s via karung_sync_loop.sh (started below)."
echo "# Daily publish — karung sync then KPI rollups at configured cutoff."
echo "${PUBLISH_MINUTE} ${PUBLISH_HOUR} * * * root cd /app && /usr/local/bin/python manage.py sync_karung_from_web_admin >> /var/log/cron.log 2>&1 && /usr/local/bin/python manage.py recompute_kpi_rollups >> /var/log/cron.log 2>&1"
} > "$CRON_FILE"
chmod 0644 "$CRON_FILE"
crontab "$CRON_FILE"
/app/karung_sync_loop.sh &
exec cron -f