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

Modifié dans la version 1.2.0: Suppression de Flask-Dramatiq

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 :

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

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.