0
0
mirror of https://github.com/wagtail/wagtail.git synced 2024-11-28 08:48:04 +01:00

Add Celery documentation (and additional advice on Redis) to the Performance howto, since it isn't going to be a default part of the project template / VM

This commit is contained in:
Matt Westcott 2014-09-10 19:24:18 +01:00
parent 07455a8469
commit bb23a49589

View File

@ -13,7 +13,7 @@ We have tried to minimise external dependencies for a working installation of Wa
Cache
-----
We recommend `Redis <http://redis.io/>`_ as a fast, persistent cache. Install Redis through package manager and enable it as a cache backend::
We recommend `Redis <http://redis.io/>`_ as a fast, persistent cache. Install Redis through your package manager (on Debian or Ubuntu: ``sudo apt-get install redis-server``), add ``django-redis-cache`` to your requirements.txt, and enable it as a cache backend::
CACHES = {
'default': {
@ -25,7 +25,22 @@ We recommend `Redis <http://redis.io/>`_ as a fast, persistent cache. Install Re
}
}
Without a persistent cache, Wagtail will recreate all compressable assets at each server start, e.g. when any files change under ```./manage.py runserver```.
Without a persistent cache, Wagtail will recreate all compressable assets at each server start, e.g. when any files change under ``./manage.py runserver``.
Sending emails in the background using Celery
---------------------------------------------
Various actions in the Wagtail admin backend can trigger notification emails - for example, submitting a page for moderation. In Wagtail's default configuration, these are sent as part of the page request/response cycle, which means that web server threads can get tied up for long periods if a large number of emails is being sent. To avoid this, Wagtail can be configured to do this as a background task, using `Celery <http://www.celeryproject.org/>`_ as a task queue. To install Celery, add ``django-celery`` to your requirements.txt. A sample configuration, using Redis as the queue backend, would look like::
import djcelery
djcelery.setup_loader()
CELERY_SEND_TASK_ERROR_EMAILS = True
BROKER_URL = 'redis://'
See the Celery documentation for instructions on running the worker process in development or production.
Search