Same tick previously fired every due watch back-to-back (burst of N requests,
worst right after a restart when all watches are due at once). Now each watch
URL fetch is followed by a pause of FETCH_GAP_SECONDS (float, default 1, env
tunable; 0 disables) on both success and failure paths.
Also thread kw_fk_col into load_ignored_keywords() inside
send_pending_notifications() so the physical-FK lookup (445040a) actually takes
effect instead of silently falling back to the watch Link column.
35 lines
1.0 KiB
YAML
35 lines
1.0 KiB
YAML
# Carousell new-listing monitor -> NocoDB archive + Telegram alerts.
|
|
# Deployed via Portainer on DSM. Secrets come from the stack's environment
|
|
# (see .env.example); operational knobs (enabled / notify / interval) live in
|
|
# the NocoDB "Settings" table.
|
|
|
|
services:
|
|
carousell-monitor:
|
|
build: .
|
|
image: carousell-monitor:latest
|
|
container_name: carousell-monitor
|
|
restart: unless-stopped
|
|
extra_hosts:
|
|
- "api.telegram.org:149.154.166.110"
|
|
environment:
|
|
NOCODB_URL: ${NOCODB_URL:-http://nocodb:10380}
|
|
NOCODB_TOKEN: ${NOCODB_TOKEN}
|
|
NOCODB_BASE_ID: ${NOCODB_BASE_ID:-poqw1zjw3hnsk37}
|
|
TELEGRAM_BOT_TOKEN: ${TELEGRAM_BOT_TOKEN}
|
|
TELEGRAM_CHAT_ID: ${TELEGRAM_CHAT_ID}
|
|
TICK_SECONDS: ${TICK_SECONDS:-60}
|
|
FETCH_GAP_SECONDS: ${FETCH_GAP_SECONDS:-1}
|
|
HEALTH_STALE_SECONDS: ${HEALTH_STALE_SECONDS:-600}
|
|
TZ: Asia/Kuala_Lumpur
|
|
volumes:
|
|
- carousell-data:/data
|
|
networks:
|
|
- bridge_hoelee
|
|
|
|
volumes:
|
|
carousell-data:
|
|
|
|
networks:
|
|
bridge_hoelee:
|
|
external: true
|