Install celery, django, django-celery, reids

Django settings.py

1
2
3
4
5
INSTALLED_APPS = (
...
'djcelery',
'app1',
)
1
2
3
4
5
import djcelery
djcelery.setup_loader()

BROKER_URL = 'redis://127.0.0.1:6379/0'
CELERY_IMPORTS = ('app1.task')

Create task.py in app1 folder

1
2
3
4
5
6
7
8
9
import time
from celery import task

@task
def sendmail(mail):
print('sending mail to %s...' % mail['to'])
time.sleep(2.0)
print('mail sent.')
return mail['to']

Run Redis

1
redis-server

or running redis in backend

1
nohup redis-server&

Run celery worker

1
python manage.py celery worker --loglevel=info -c 4

or running in backend

1
nohup python manage.py celery worker --loglevel=info -c 4

Add celery in supervisor

In supervisor config file

1
2
3
4
5
6
7
[program:celery]
command=python manage.py celery worker -c 4 --loglevel=info
directory=/data/integratedmanagement/
user=lanshi
redirect_stderr=true
autostart=true
stdout_logfile=/tmp/youjian_celery.log