Session 7j: Soccer intelligence - 9 leagues, 11 signals, 6 traps, poller, prefetch, 131 new tests (1173 total)

This commit is contained in:
Kev
2026-06-10 14:50:13 -04:00
parent b9084408bf
commit ad5ea8d5a8
28 changed files with 3175 additions and 49 deletions
+24
View File
@@ -33,11 +33,35 @@ function poller(sport, env = {}) {
};
}
// Soccer poller (Session 7j) — own script because the data sources
// (worldcup2026 OSS + football-data.org) and cache shape (per-team
// next/last match pointers) differ from the box-score resolution path.
// SOCCER_LEAGUES env controls which competitions get polled; default 'WC'.
function soccerPoller(env = {}) {
return {
name: 'poller-soccer',
script: require('path').join(__dirname, 'soccer.js'),
cwd: ROOT,
env: {
...baseEnv,
...env,
SOCCER_LEAGUES: env.SOCCER_LEAGUES || process.env.SOCCER_LEAGUES || 'WC',
},
max_memory_restart: '256M',
log_type: 'json',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
autorestart: true,
max_restarts: 10,
min_uptime: '30s',
};
}
module.exports = {
apps: [
poller('nba'),
poller('wnba'),
poller('mlb'),
soccerPoller(),
// Uncomment when in-season — keeping commented to save memory off-season.
// poller('nfl'),
// poller('ncaafb'),