maxkb/apps/common/management/commands/services/services/scheduler.py

51 lines
1.3 KiB
Python

import subprocess
from .base import BaseService
from ..hands import *
__all__ = ['SchedulerService']
class SchedulerService(BaseService):
def __init__(self, **kwargs):
self.worker = 1
super().__init__(**kwargs)
@property
def cmd(self):
print("\n- Start Scheduler Server")
log_format = '%(h)s %(t)s %(L)ss "%(r)s" %(s)s %(b)s '
bind = f'127.0.0.1:6060'
cmd = [
'gunicorn', 'maxkb.wsgi:application',
'-b', bind,
'-k', 'gthread',
'--threads', '200',
'-w', str(self.worker),
'--max-requests', '10240',
'--max-requests-jitter', '2048',
'--access-logformat', log_format,
'--access-logfile', '/dev/null',
'--error-logfile', '-'
]
if DEBUG:
cmd.append('--reload')
return cmd
@property
def cwd(self):
return APPS_DIR
def open_subprocess(self):
# 复制当前环境变量,并设置 ENABLE_SCHEDULER=1
env = os.environ.copy()
env['ENABLE_SCHEDULER'] = '1'
kwargs = {
'cwd': self.cwd,
'stderr': self.log_file,
'stdout': self.log_file,
'env': env
}
self._process = subprocess.Popen(self.cmd, **kwargs)