Setup Redis with RQ for background task processing¶
If you want to scale Devilry to more than a couple of hundred users, you have to configure the RQ and Redis. RQ is installed by default, but you need to configure a task broker. We recommend Redis.
requirepass setting in redis.conf to set a password.
Remember to run Redis with this config, it is not loaded by default:
$ redis-server /path/to/redis.conf
You can tweak other configuration parameters in this file, such as port and other things, so check it out.
Add RQ setup for Redis Devilry¶
Add the following to
match the password in the redis.conf file) and set the correct config parameters for Redis to the RQ-queues:
#: Setup Redis connection settings for background task server. from devilry.utils import rq_setup RQ_QUEUES = rq_setup.make_simple_rq_queue_setting( host='localhost', port=6379, db=0, password='secret' )
Run RQ workers¶
To run RQ workers, use:
$ cd ~/devilrydeploy/ $ venv/bin/python manage.py rqworker default email highpriority
Alternatively you can run one RQ worker for each queue:
$ cd ~/devilrydeploy/ $ venv/bin/python manage.py rqworker default $ venv/bin/python manage.py rqworker email $ venv/bin/python manage.py rqworker highpriority
Verifying the setup¶
You can verify the setup by running the
devilry_test_rq_task management command:
$ cd ~/devilrydeploy/ $ venv/bin/python manage.py devilry_test_rq_task --queue default
For full documentation for RQ_QUEUES setting, see https://github.com/rq/django-rq . Just make sure you set up the config for these qeueues:
Devilry updates may add more required queues. Be aware that custom tuning the RQ_QUEUES setting may break your setup when you update Devilry.