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:
REDIS_URL: Redis instance used by Dramatiq and Flask-Limiter.
WORKERS_PROCESSES: Number of processes used by Dramatiq.
DRAMATIQ_LOG: Path to Dramatiq log file.
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 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.