Traitement des tâches¶
Ajouté dans la version 0.3.0.
Modifié dans la version 0.10.0: Ajout de la variable TASKS_TIME_LIMIT
Le traitement des tâches est effectué en utilisant Dramatiq. Il requiert Redis et est utilisé pour l'envoi des emails, les exports de données utilisateurs et le chargement des archives de séances.
Note
Si aucun worker n'est lancé, une interface de ligne de commandes permet de traiter les tâches en attente.
Les variables d'environnement suivantes doivent être définies :
REDIS_URL : Instance Redis utilisée par Dramatiq et Flask-Limiter.
WORKERS_PROCESSES : Nombre de processus utilisés par Dramatiq.
DRAMATIQ_LOG : Chemin du fichier de log de Dramatiq
Pour éviter que des tâches d'export de données utilisateurs et de chargement d'archives s'exécutent indéfiniment, une durée limite est définie :
TASKS_TIME_LIMIT : Timeout en secondes pour l'exécution des tâches par Dramatiq. La valeur par défaut est 1800 secondes (30 minutes).
Pour démarrer les workers de la file d'attente, exécuter la commande suivante après l'activation de l'environnement virtuel :
$ dramatiq fittrackee.tasks:broker --processes=$WORKERS_PROCESSES --log-file=$DRAMATIQ_LOG
Note
Il est possible de lancer les files d'attente séparément, par exemple pour le chargement d'archives de séances :
$ dramatiq fittrackee.tasks:broker --processes=2 -Q fittrackee_workouts
Les files d'attente suivantes sont disponibles :
fittrackee_emails: pour l'envoi des emails (priorité: haute)fittrackee_users_exports: pour les exports de données utilisateurs (priorité: moyenne)fittrackee_workouts: pour le chargement des archives de séances (priorité: moyenne)
Lancer dramatiq -h pour afficher la liste des commandes disponibles.