mirror of https://github.com/jumpserver/jumpserver
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
890 B
35 lines
890 B
#!/usr/bin/env python
|
|
#
|
|
import os
|
|
import sys
|
|
import subprocess
|
|
|
|
import redis_lock
|
|
from redis import Redis
|
|
|
|
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
APPS_DIR = os.path.join(BASE_DIR, 'apps')
|
|
|
|
sys.path.insert(0, BASE_DIR)
|
|
from apps.jumpserver.const import CONFIG
|
|
|
|
os.environ.setdefault('PYTHONOPTIMIZE', '1')
|
|
if os.getuid() == 0:
|
|
os.environ.setdefault('C_FORCE_ROOT', '1')
|
|
|
|
redis = Redis(host=CONFIG.REDIS_HOST, port=CONFIG.REDIS_PORT, password=CONFIG.REDIS_PASSWORD)
|
|
scheduler = "django_celery_beat.schedulers:DatabaseScheduler"
|
|
|
|
cmd = [
|
|
'celery', 'beat',
|
|
'-A', 'ops',
|
|
'-l', 'INFO',
|
|
'--scheduler', scheduler,
|
|
'--max-interval', '60'
|
|
]
|
|
|
|
with redis_lock.Lock(redis, name="beat-distribute-start-lock", expire=60, auto_renewal=True):
|
|
print("Get beat lock start to run it")
|
|
code = subprocess.call(cmd, cwd=APPS_DIR)
|
|
sys.exit(code)
|