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 :

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 également possible de démarrer les workers de la file d'attente avec l'interface de ligne de commandes de Flask-dramatiq, mais il est recommandé d'utiliser l'interface de Dramatiq pour le moment.

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.