#!/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)