Celery автоматическая перезагрузка Django

Я следую примеру Чиллара Ананда примеру о том, как перезагрузить Celery при изменении в моем проекте Django, однако, похоже, это не закрывает предыдущий рабочий Celery. При перезагрузке Celery выдает следующую ошибку:

[2021-08-11 10:42:30,216: WARNING/MainProcess] /Users/someuser/Documents/dev/backoffice/venv/lib/python3.8/site-packages/kombu/pidbox.py:72: UserWarning: A node named celery@someusers-iMac.local is already using this process mailbox!

Maybe you forgot to shutdown the other node or did not do so properly?
Or if you meant to start multiple nodes on the same host please make sure
you give each node a unique node name!

  warnings.warn(W_PIDBOX_IN_USE.format(node=self))

Мой код в Django's management > commands celery_worker.py следующий:

import shlex
import subprocess
from django.core.management.base import BaseCommand
from django.utils import autoreload


class Command(BaseCommand):
    def handle(self, *args, **options):
        autoreload.run_with_reloader(self._restart_celery)

    @classmethod
    def _restart_celery(cls):
        cls.run('pkill -f "celery worker"')
        cls.run('celery -A backoffice worker -B -l DEBUG')

    @staticmethod
    def run(cmd):
        subprocess.call(shlex.split(cmd))

Я попробовал следующую команду 'Kill', которая отлично работает при использовании в терминале, но при использовании в командном скрипте OSX выдает ошибку - "kill: illegal process id: $(ps"


kill -9 $(ps aux | grep celery | grep -v grep | awk '{print $2}' | tr '\n' ' ') > /dev/null 2>&1kill -9 $(ps aux | grep celery | grep -v grep | awk '{print $2}' | tr '\n' ' ') > /dev/null 2>&1

OSX: 11.5.1 Django: 3.2.6 Celery: 5.1.2

Любые рекомендации будут приняты с благодарностью.

Вернуться на верх