feat: enable scheduled content sync with typo3 for mcp

This commit is contained in:
fromme committed 2026-10-08 15:35:23 +02:00
1 parent 4ab2714bde
commit ac5ca7b18b
2 files changed
+18 -2

No files matched your search

+12
View File
@@ -67,3 +67,15 @@ when@prod:
- task: app:bpn:sync-contingents - task: app:bpn:sync-contingents
frequency: "5 20-23,0-7 * * *" frequency: "5 20-23,0-7 * * *"
description: "Syncs the full contingent horizon hourly outside peak hours" description: "Syncs the full contingent horizon hourly outside peak hours"
- task: app:content:sync
frequency: "0 * * * *"
description: "Mirrors changes in the TYPO3 content feed for the chatbot MCP server"
- task: app:content:sync --refresh
frequency: "5 1 * * 0"
description: "Refetches TYPO3 content stored more than 7 days ago, within the night window"
- task: app:content:check-freshness --max-age 150
frequency: "10 * * * *"
description: "Fails when the TYPO3 content mirror has missed more than one hourly sync"
+6 -2
View File
@@ -100,8 +100,12 @@ php bin/console app:content:sync --ignore-window # deliberate bulk run outside
php bin/console app:content:check-freshness # fails if the last good manifest is > 60 min old php bin/console app:content:check-freshness # fails if the last good manifest is > 60 min old
``` ```
Not scheduled yet. The intended schedule is a delta sync every 15 minutes, `--refresh` on Sunday at Scheduled on prod (`config/packages/zenstruck_schedule.yaml`): an hourly delta sync,
01:00, and the freshness check hourly, so that `email_on_failure` reports a stalled sync. `--refresh` on Sunday at 01:05, and the freshness check hourly at :10 with `--max-age 150`, so that
`email_on_failure` reports a stalled sync but not a single missed run. Website content changes
rarely, and an hour's delay is acceptable for the chatbot; trip data and availability do not come
from this mirror. The refresh is off the quarter hour because a run that
finds another one holding the lock exits successfully without doing anything.
The feed is read with `X-Api-Key: <APP_CMS_API_KEY>` from `APP_CMS_API_BASE_URL`. The manifest lists The feed is read with `X-Api-Key: <APP_CMS_API_KEY>` from `APP_CMS_API_BASE_URL`. The manifest lists
every site whichever host serves it. The key is only sent to hosts of the sites the manifest names. every site whichever host serves it. The key is only sent to hosts of the sites the manifest names.