From 1db5c59925201eae4f41e0758144976d9cbdc118 Mon Sep 17 00:00:00 2001 From: panyy Date: Mon, 29 Jun 2026 17:50:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E9=99=90=E5=88=B6=E5=BF=85=E9=A1=BBapi-ke?= =?UTF-8?q?y=E6=88=96=E7=99=BB=E5=BD=956?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../services/services/celery_model.py | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 apps/common/management/commands/services/services/celery_model.py diff --git a/apps/common/management/commands/services/services/celery_model.py b/apps/common/management/commands/services/services/celery_model.py new file mode 100644 index 000000000..4207b112b --- /dev/null +++ b/apps/common/management/commands/services/services/celery_model.py @@ -0,0 +1,31 @@ +import os +import subprocess + +from .celery_base import CeleryBaseService +from django.conf import settings + +__all__ = ['CeleryModelService'] + + +class CeleryModelService(CeleryBaseService): + + def __init__(self, **kwargs): + kwargs['queue'] = 'model' + super().__init__(**kwargs) + + def open_subprocess(self): + env = os.environ.copy() + env['LC_ALL'] = 'C.UTF-8' + env['PYTHONOPTIMIZE'] = '1' + env['ANSIBLE_FORCE_COLOR'] = 'True' + env['PYTHONPATH'] = settings.APPS_DIR + env['SERVER_NAME'] = 'celery' + if os.getuid() == 0: + env.setdefault('C_FORCE_ROOT', '1') + kwargs = { + 'cwd': self.cwd, + 'stderr': self.log_file, + 'stdout': self.log_file, + 'env': env + } + self._process = subprocess.Popen(self.cmd, **kwargs)