Tasks processing

Added in version 0.3.0.

Changed in version 0.10.0: Add TASKS_TIME_LIMIT variable

Tasks processing is done using Dramatiq. It requires Redis and is used for email sending, user data exports and workouts archives uploads.

Note

If no workers are running, CLI commands allow to process queued tasks.

The following environment variables must be set:

To avoid long-running tasks for user data exports and workouts archives uploads, a time limit is set:

  • TASKS_TIME_LIMIT: Timeout in seconds for Dramatiq task execution. The default value is 1800 seconds (30 minutes).

To start task queue workers, run the following command after virtual environment activation:

$ dramatiq fittrackee.tasks:broker --processes=$WORKERS_PROCESSES --log-file=$DRAMATIQ_LOG

Note

It is also possible to start task queue workers with Flask-Dramatiq CLI, but it is recommended to use Dramatiq CLI instead for now.

It is possible to run queues independently, for instance for workouts archive uploads:

$ dramatiq fittrackee.tasks:broker --processes=2 -Q fittrackee_workouts

The following queues are available:

  • fittrackee_emails: for emails sending (priority: high)

  • fittrackee_users_exports: for user data exports (priority: medium)

  • fittrackee_workouts: for workouts archive uploads (priority: medium)

Run dramatiq -h to see a list of the available commands.