diff --git a/apps/common/management/commands/services/command.py b/apps/common/management/commands/services/command.py index a3fa3d72f..05095e5cb 100644 --- a/apps/common/management/commands/services/command.py +++ b/apps/common/management/commands/services/command.py @@ -1,11 +1,10 @@ import math +import os from django.core.management.base import BaseCommand from django.db.models import TextChoices -from .hands import * from .utils import ServicesUtil -import os class Services(TextChoices): diff --git a/apps/common/management/commands/services/services/celery_default.py b/apps/common/management/commands/services/services/celery_default.py index 5d3e6d7b8..eb5ea8096 100644 --- a/apps/common/management/commands/services/services/celery_default.py +++ b/apps/common/management/commands/services/services/celery_default.py @@ -1,3 +1,6 @@ +import os +import subprocess + from .celery_base import CeleryBaseService __all__ = ['CeleryDefaultService'] @@ -8,3 +11,14 @@ class CeleryDefaultService(CeleryBaseService): def __init__(self, **kwargs): kwargs['queue'] = 'celery' super().__init__(**kwargs) + + def open_subprocess(self): + env = os.environ.copy() + env['SERVER_NAME'] = 'celery' + kwargs = { + 'cwd': self.cwd, + 'stderr': self.log_file, + 'stdout': self.log_file, + 'env': env + } + self._process = subprocess.Popen(self.cmd, **kwargs) diff --git a/apps/common/management/commands/services/services/gunicorn.py b/apps/common/management/commands/services/services/gunicorn.py index 331d1d3ea..b5b8673da 100644 --- a/apps/common/management/commands/services/services/gunicorn.py +++ b/apps/common/management/commands/services/services/gunicorn.py @@ -1,3 +1,5 @@ +import subprocess + from .base import BaseService from ..hands import * @@ -35,3 +37,15 @@ class GunicornService(BaseService): @property def cwd(self): return APPS_DIR + + def open_subprocess(self): + # 复制当前环境变量,并设置 ENABLE_SCHEDULER=1 + env = os.environ.copy() + env['SERVER_NAME'] = 'web' + kwargs = { + 'cwd': self.cwd, + 'stderr': self.log_file, + 'stdout': self.log_file, + 'env': env + } + self._process = subprocess.Popen(self.cmd, **kwargs) diff --git a/apps/common/management/commands/services/services/local_model.py b/apps/common/management/commands/services/services/local_model.py index 35c5ae92e..f523b1b1f 100644 --- a/apps/common/management/commands/services/services/local_model.py +++ b/apps/common/management/commands/services/services/local_model.py @@ -6,6 +6,8 @@ @date:2024/8/21 13:28 @desc: """ +import subprocess + from maxkb.const import CONFIG from .base import BaseService from ..hands import * @@ -22,7 +24,6 @@ class GunicornLocalModelService(BaseService): @property def cmd(self): print("\n- Start Gunicorn Local Model WSGI HTTP Server") - os.environ.setdefault('SERVER_NAME', 'local_model') log_format = '%(h)s %(t)s %(L)ss "%(r)s" %(s)s %(b)s ' bind = f'{CONFIG.get("LOCAL_MODEL_HOST")}:{CONFIG.get("LOCAL_MODEL_PORT")}' worker = CONFIG.get("LOCAL_MODEL_HOST_WORKER", 1) @@ -45,3 +46,15 @@ class GunicornLocalModelService(BaseService): @property def cwd(self): return APPS_DIR + + def open_subprocess(self): + # 复制当前环境变量,并设置 ENABLE_SCHEDULER=1 + env = os.environ.copy() + env['SERVER_NAME'] = 'local_model' + kwargs = { + 'cwd': self.cwd, + 'stderr': self.log_file, + 'stdout': self.log_file, + 'env': env + } + self._process = subprocess.Popen(self.cmd, **kwargs)