From a7836905072da1c4d33e4388259cb43fd892bb7c Mon Sep 17 00:00:00 2001
From: Tim McCormack <tmccormack@edx.org>
Date: Fri, 6 Mar 2020 16:08:05 +0000
Subject: [PATCH] Fix the way we launch celery (needs pointer to celery app,
 not env file) (#23325)

This is a fix to PR #23222.
---
 cms/envs/devstack_with_worker.py    | 2 +-
 lms/envs/devstack_with_worker.py    | 2 +-
 pavelib/paver_tests/test_servers.py | 3 ++-
 pavelib/servers.py                  | 6 ++++--
 4 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/cms/envs/devstack_with_worker.py b/cms/envs/devstack_with_worker.py
index c152991c20e..4350a7ff093 100644
--- a/cms/envs/devstack_with_worker.py
+++ b/cms/envs/devstack_with_worker.py
@@ -8,7 +8,7 @@ of tasks onto the appropriate workers.
 
 In two separate processes on devstack:
     paver devstack studio --settings=devstack_with_worker
-    celery worker --app=cms.envs.devstack_with_worker
+    DJANGO_SETTINGS_MODULE=cms.envs.devstack_with_worker celery worker --app=cms.celery:APP
 """
 
 
diff --git a/lms/envs/devstack_with_worker.py b/lms/envs/devstack_with_worker.py
index 43ee9f953ca..b13eae1d9be 100644
--- a/lms/envs/devstack_with_worker.py
+++ b/lms/envs/devstack_with_worker.py
@@ -8,7 +8,7 @@ of tasks onto the appropriate workers.
 
 In two separate processes on devstack:
     paver devstack lms --settings=devstack_with_worker
-    celery worker --app=lms.envs.devstack_with_worker
+    DJANGO_SETTINGS_MODULE=lms.envs.devstack_with_worker celery worker --app=lms.celery:APP
 """
 
 
diff --git a/pavelib/paver_tests/test_servers.py b/pavelib/paver_tests/test_servers.py
index aa4e1fd32b9..8e94fd655f7 100644
--- a/pavelib/paver_tests/test_servers.py
+++ b/pavelib/paver_tests/test_servers.py
@@ -34,7 +34,8 @@ EXPECTED_COLLECT_STATIC_COMMAND = (
     u'--noinput {log_string}'
 )
 EXPECTED_CELERY_COMMAND = (
-    u"celery worker --app=lms.envs.{settings} --beat --loglevel=INFO --pythonpath=."
+    u"DJANGO_SETTINGS_MODULE=lms.envs.{settings} celery worker "
+    u"--app=lms.celery:APP --beat --loglevel=INFO --pythonpath=."
 )
 EXPECTED_RUN_SERVER_COMMAND = (
     u"python manage.py {system} --settings={settings} runserver --traceback --pythonpath=. 0.0.0.0:{port}"
diff --git a/pavelib/servers.py b/pavelib/servers.py
index 905df44ca73..c6c58a0c41f 100644
--- a/pavelib/servers.py
+++ b/pavelib/servers.py
@@ -159,7 +159,8 @@ def celery(options):
     Runs Celery workers.
     """
     settings = getattr(options, 'settings', 'devstack_with_worker')
-    run_process(cmd('celery', 'worker', '--app=lms.envs.{}'.format(settings),
+    run_process(cmd('DJANGO_SETTINGS_MODULE=lms.envs.{}'.format(settings),
+                    'celery', 'worker', '--app=lms.celery:APP',
                     '--beat', '--loglevel=INFO', '--pythonpath=.'))
 
 
@@ -236,7 +237,8 @@ def run_all_servers(options):
             'studio', settings_cms, 'runserver', '--traceback', '--pythonpath=.', *cms_runserver_args
         ),
         cmd(
-            'celery', 'worker', "--app=lms.envs.{}".format(worker_settings),
+            'DJANGO_SETTINGS_MODULE=lms.envs.{}'.format(worker_settings),
+            'celery', 'worker', '--app=lms.celery:APP',
             '--beat', '--loglevel=INFO', '--pythonpath=.'
         )
     ])
-- 
GitLab