Tâches distribuées (Taskiq)¶
Stream Fusion utilise Taskiq comme système de tâches de fond distribuées avec Redis comme broker.
Architecture¶
graph LR
S["Scheduler<br/>×1 singleton"] -->|cron| R[(" Redis<br/>Broker DB 6")]
W1["Worker #1"] --> R
W2["Worker #2"] --> R
R -->|dispatch| W1
R -->|dispatch| W2
style S fill:#bf360c,color:#fff
style R fill:#1b5e20,color:#fff
style W1 fill:#311b92,color:#fff
style W2 fill:#311b92,color:#fff
Scheduler = singleton
Le scheduler ne doit jamais avoir plus de 1 replica. Sinon les tâches cron seraient exécutées en double.
Tâches automatiques¶
Maintenance base de données¶
| Tâche | Cron | Description |
|---|---|---|
debrid_cache_cleanup |
0 */6 * * * |
Cache debrid expiré |
torrent_orphan_cleanup |
0 1 * * * |
Orphelins sans TMDB (>7j) |
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 |
Nettoyage des clés¶
| Tâche | Cron | Description |
|---|---|---|
api_keys_cleanup |
0 */6 * * * |
Clés API expirées |
peer_keys_cleanup |
0 */6 * * * |
Peer keys expirées |
Matching automatique¶
| Tâche | Cron | Description |
|---|---|---|
tmdb_orphan_matching |
*/30 * * * * |
Matching TMDB |
imdb_orphan_matching |
*/30 * * * * |
Matching IMDB |
Synchronisation¶
| Tâche | Cron | Description |
|---|---|---|
dmm_sync |
0 2 * * * |
Hashlists DMM |
u2p_sync |
0 3 * * 0 |
Nostr NIP-35 |
peer_sync |
Configurable | Cache inter-instances |
imdb_build |
0 3 1,15 * * |
Rebuild DuckDB |
imdb_enrich |
0 5 * * * |
Enrichissement Meili |
Verrous distribués¶
Taskiq utilise des verrous Redis pour empêcher les exécutions simultanées :
| Verrou | Clé Redis | TTL | Description |
|---|---|---|---|
| Background refresh | bg_refresh_indexer:{name} |
6h | Un refresh par indexeur |
| Préchargement | prefetch_next:{hash} |
20 min | Un prefetch par épisode |
| Peer sync | peer_sync:{instance_id} |
24h | Une sync par instance |
Activation/désactivation¶
Redémarrage
Les changements de cron via variables d'environnement nécessitent un redémarrage du scheduler et des workers.