Итак перепробовав кучу вариантов, у меня получился один единственный. Сложно мне сказать почему именно он, но возможно это как-то связано с версиями самого Celery, потому что все решения, старше 2018 года просто не сработали у меня. В итоге я совместил пару решений (найденных на стековерфлоу), которые были предложены в 2018 и в 2019 году и наконец-таки у меня получилось.
Итак файл settings.py . Вообще стал никак не задействован. В нём (если смотреть выше) была лишь настройка брокера. Она перекочевала в файл celery.py
celery.py теперь стал выглядеть так:
from kombu import Queue, Exchange, binding
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'one.settings')
# default_exchange = Exchange('default', type='direct')
one_exchange = Exchange('one_go', type='direct')
app = Celery('one', broker='amqp://localhost')
app.conf.update(
task_queues= (
Queue('one_go', [binding(one_exchange, routing_key='one_go')]),
)
)
app.conf.update(
task_routes= {
'plugin.email.tasks.send_email': {'queue': 'one_go'},
'plugin.print.tasks.create_pdf_task': {'queue': 'one_go'},
'plugin.print.tasks.create_pdf_from_site_task': {'queue': 'one_go'},
}
)
app.autodiscover_tasks()
ну а команда запуска находящаяся в файле
one-celery.conf (для супервизора) начало которого теперь выглядит так:
[program:one-celery]
command=/home/iuser/djangoprojects/one/v_one/bin/celery worker -A one -l info -Q one_go
Возможно что-то тут лишнее, может быть код избыточен, но работает именно так, как мне надо. Во второй "Джанге" всё так же, только вместо условного "one" везде прописано условное "two". Мучился над задачей с пятницы. Как говориться "не прошло и три дня". Всем спасибо.
p.s. Даже и не знаю почему у меня не работает через настройки типа CELERY_QUEUES или CELERY_ROUTES. Возможно эти параметры упразднены в угоду тех конструкций, что я написал в этом сообщении выше.