From 13644654e40f38a943ec303db117a9ee7a681cee Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Herv=C3=A9=20M=C3=A9nager?= <herve.menager@pasteur.fr>
Date: Sat, 4 Apr 2020 15:43:54 +0200
Subject: [PATCH] use a instance-custom configurated celery queue

this avoids tasks being processed by celery queues launched for
other instances of iPPI-DB
---
 ansible/celery.service | 2 ++
 ansible/celeryd        | 1 +
 ansible/deploy.yaml    | 6 ++++++
 3 files changed, 9 insertions(+)

diff --git a/ansible/celery.service b/ansible/celery.service
index 87e2fdf8..e6dbfc08 100644
--- a/ansible/celery.service
+++ b/ansible/celery.service
@@ -9,11 +9,13 @@ Group=ippidb
 EnvironmentFile=-/etc/default/ippidb-{{ http_port }}-celeryd
 WorkingDirectory=/home/ippidb/ippidb-web-{{ http_port }}/ippisite
 ExecStart=/bin/sh -c '${CELERY_BIN} multi start ${CELERYD_NODES} \
+  -Q ${CELERYD_QUEUE}
   -A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \
   --logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}'
 ExecStop=/bin/sh -c '${CELERY_BIN} multi stopwait ${CELERYD_NODES} \
   --pidfile=${CELERYD_PID_FILE}'
 ExecReload=/bin/sh -c '${CELERY_BIN} multi restart ${CELERYD_NODES} \
+  -Q ${CELERYD_QUEUE}
   -A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \
   --logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}'
 
diff --git a/ansible/celeryd b/ansible/celeryd
index d52518e3..1ce118ad 100644
--- a/ansible/celeryd
+++ b/ansible/celeryd
@@ -8,6 +8,7 @@ CELERYD_PID_FILE="/var/ippidb-{{ http_port }}-celery/celery%n.pid"
 CELERYD_LOG_LEVEL="DEBUG"
 CELERYD_USER="celery-{{ http_port }}"
 CELERYD_GROUP="ippidb"
+CELERYD_QUEUE="celery-{{ http_port }}"
 CELERY_CREATE_DIRS=1
 SYSTEMD_LOG_LEVEL=debug
 DJANGO_SETTINGS_MODULE=ippisite.{{ ansible_hostname }}_settings
diff --git a/ansible/deploy.yaml b/ansible/deploy.yaml
index a7b9b33c..346a6d21 100644
--- a/ansible/deploy.yaml
+++ b/ansible/deploy.yaml
@@ -214,6 +214,12 @@
               }
           }
         marker: "# {mark} ANSIBLE MANAGED DATABASE SETTINGS"
+    - name: Configure the CELERY QUEUE to submit tasks to from Django
+      blockinfile:
+        path: "{{ checkout_path }}/ippisite/ippisite/{{ ansible_hostname }}_settings.py"
+        block: |
+          CELERY_TASK_DEFAULT_QUEUE = "celery-{{ http_port }}"
+        marker: "# {mark} ANSIBLE MANAGED CELERY DEFAULT TASK QUEUE"
     - name: Add database settings to iPPI-DB settings
       blockinfile:
         path: "{{ checkout_path }}/ippisite/ippisite/{{ ansible_hostname }}_settings.py"
-- 
GitLab