Aller au contenu

Tâches planifiées

Stream Fusion utilise Taskiq comme système de tâches de fond distribuées. Les tâches sont exécutées par des workers et planifiées par un scheduler singleton.


Architecture Taskiq

graph LR
 S["Scheduler<br/>×1 singleton"] -->|cron| R[(" Redis Broker<br/>DB 6")]
 W["Workers<br/>×2+ scalable"] -->|execute| R
 R -->|results| W
 R -->|queue| W

 style S fill:#bf360c,color:#fff
 style R fill:#1b5e20,color:#fff
 style W fill:#311b92,color:#fff

Scheduler unique

Le scheduler ne doit jamais avoir plus de 1 replica. Scaler le scheduler cause des exécutions cron en double.


Tâches automatiques

Maintenance base de données

Tâche Cron Description
debrid_cache_cleanup 0 */6 * * * Nettoyage cache debrid expiré
torrent_orphan_cleanup 0 1 * * * Suppression orphelins (>7j sans TMDB)
torrent_dedup 0 2 * * * Dédoublonnage
torrent_group_hash 0 3 * * * Groupement par hash
torrent_group_title_size 0 4 * * * Groupement titre/taille
fix_type_inconsistencies 0 5 * * * Correction types incohérents

Nettoyage des clés

Tâche Cron Description
api_keys_cleanup 0 */6 * * * Nettoyage clés API expirées
peer_keys_cleanup 0 */6 * * * Nettoyage peer keys expirées

Matching automatique

Tâche Cron Description
tmdb_orphan_matching */30 * * * * Matching TMDB
imdb_orphan_matching */30 * * * * Matching IMDB (DuckDB)

Synchronisation

Tâche Cron Description
dmm_sync 0 2 * * * Hashlists DMM (désactivé par défaut)
u2p_sync 0 3 * * 0 Nostr NIP-35 (désactivé par défaut)
peer_sync Configurable Cache inter-instances
imdb_build 0 3 1,15 * * Rebuild DuckDB (désactivé)
imdb_enrich 0 5 * * * Enrichissement Meili (désactivé)

Activation/désactivation

# Désactiver une tâche spécifique
TASK_SCHEDULE_ENABLED_DEBRID_CACHE_CLEANUP=False
TASK_SCHEDULE_ENABLED_TORRENT_ORPHAN_CLEANUP=False

# Modifer un horaire cron
TASK_CRON_DEBRID_CACHE_CLEANUP=0 */4 * * *
  1. Allez sur /admin/
  2. Section Scheduler : voir l'état, activer/désactiver
  3. Section Maintenance : nettoyage manuel

Redémarrage requis

Les changements de cron via variables d'environnement nécessitent un redémarrage du scheduler et des workers. Les flags TASK_SCHEDULE_ENABLED_* peuvent être modifiés à chaud via l'admin.


Configuration avancée

# Taille des batches de matching
TASKIQ_TMDB_MATCH_BATCH_SIZE=1000
TASKIQ_IMDB_MATCH_BATCH_SIZE=1000

# Âge max des orphelins
TASKIQ_TORRENT_ORPHAN_MAX_AGE_DAYS=7