2025-11-06 02:31:14 +00:00
|
|
|
import os
|
|
|
|
|
import subprocess
|
|
|
|
|
|
2025-06-05 09:56:04 +00:00
|
|
|
from .celery_base import CeleryBaseService
|
2025-11-06 03:22:36 +00:00
|
|
|
from django.conf import settings
|
2025-06-05 09:56:04 +00:00
|
|
|
|
|
|
|
|
__all__ = ['CeleryDefaultService']
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CeleryDefaultService(CeleryBaseService):
|
|
|
|
|
|
|
|
|
|
def __init__(self, **kwargs):
|
|
|
|
|
kwargs['queue'] = 'celery'
|
|
|
|
|
super().__init__(**kwargs)
|
2025-11-06 02:31:14 +00:00
|
|
|
|
|
|
|
|
def open_subprocess(self):
|
|
|
|
|
env = os.environ.copy()
|
2025-11-06 03:22:36 +00:00
|
|
|
env['LC_ALL'] = 'C.UTF-8'
|
|
|
|
|
env['PYTHONOPTIMIZE'] = '1'
|
|
|
|
|
env['ANSIBLE_FORCE_COLOR'] = 'True'
|
|
|
|
|
env['PYTHONPATH'] = settings.APPS_DIR
|
2025-11-06 02:31:14 +00:00
|
|
|
env['SERVER_NAME'] = 'celery'
|
2025-11-06 03:22:36 +00:00
|
|
|
if os.getuid() == 0:
|
|
|
|
|
env.setdefault('C_FORCE_ROOT', '1')
|
2025-11-06 02:31:14 +00:00
|
|
|
kwargs = {
|
|
|
|
|
'cwd': self.cwd,
|
|
|
|
|
'stderr': self.log_file,
|
|
|
|
|
'stdout': self.log_file,
|
|
|
|
|
'env': env
|
|
|
|
|
}
|
|
|
|
|
self._process = subprocess.Popen(self.cmd, **kwargs)
|