Quero mostrar como usar o Celery de forma fácil junto com o RabbitMQ para executar tarefas demoradas num sistema web, como por exemplo gerar um relatório ou esperar a resposta de uma API externa ao seu sistema. E como colocar isso em produção utilizando o supervisor.
6. Apresentando o Celery
1. Task Queue Assíncrona
2. Agenda tarefas
3. Integração com Django, flask, tornado, etc.
7.
8. Mão na Massa
Instalar o RabbitMQ
1. Instalar do site ou com APT-GET
a. sudo rabbitmqctl add_user myuser mypassword
b. sudo rabbitmqctl add_vhost myvhost
c. sudo rabbitmqctl set_permissions -p myvhost myuser ".*" ".*" ".*"
16. Em produção, use o supervisor
1. sudo apt-get install supervisor
2. criar um arquivo de configuração pro celery e com um link simbólico no
/etc/supervisor/conf.d/
[program:celery]
command=/home/deploy/.virtualenvs/virtual_legal/bin/celery --app=nomeprj
worker --loglevel=INFO
directory=/home/deploy/webapps/pasta_projeto
user=nobody
autostart=true
autorestart=true
redirect_stderr=true