Добавил команду для сборки конфигов celery

feature/fix_generate_pass
andrey 8 years ago
parent 9f11f4c426
commit 427ae69f22
  1. 60
      config_app/management/commands/build_celery.py
  2. 8
      config_app/management/commands/clear_log.py
  3. 7
      config_app/supervisor_configs/build.conf
  4. 7
      config_app/supervisor_configs/dist/beat.conf
  5. 7
      config_app/supervisor_configs/dist/flower.conf
  6. 7
      config_app/supervisor_configs/dist/worker.conf
  7. 8
      config_app/supervisor_configs/schedule.conf

@ -0,0 +1,60 @@
from django.core.management.base import BaseCommand, CommandError
import os
import shutil
from django.conf import settings
class Command(BaseCommand):
help = 'Сздаёт супервисор конфиги для селери'
def add_arguments(self, parser):
parser.add_argument(
'--user',
type=str,
default='www',
dest='user',
help='Пользователь от имени которого будут запускаться процессы супервизора'
)
parser.add_argument(
'--env',
type=str,
default='dev',
dest='env',
help='Тип кружения из пд которого запускается скрипт (env, dev, test)'
)
parser.add_argument(
'--celery-path',
type=str,
dest='celery_path',
help='Путь до celery'
)
def handle(self, *args, **options):
with open(settings.BASE_DIR + '/config_app/supervisor_configs/build.conf') as file_in:
text = file_in.read()
text = text.replace("$CELERY_PATH$", options['celery_path'])
text = text.replace("$USER$", options['user'])
text = text.replace("$PROJECT_PATH$", settings.BASE_DIR)
if options['env'] == 'dev':
text = text.replace("$LOG_LEVEL$", 'info')
try:
shutil.rmtree(settings.BASE_DIR + '/config_app/supervisor_configs/dist')
except FileNotFoundError:
pass
os.mkdir(settings.BASE_DIR + '/config_app/supervisor_configs/dist')
for name in ['beat', 'worker', 'flower']:
out_text = text.replace("$NAME$", name)
out_file_path = '%s/config_app/supervisor_configs/dist/%s.conf' % (settings.BASE_DIR, name)
with open(out_file_path, 'w') as file_out:
file_out.write(out_text)
try:
os.symlink(out_file_path, '/etc/supervisor/conf.d/%s.conf' % name)
except FileExistsError:
pass
else:
raise CommandError('No such environ %s use one of (dev, prod, test)' % poll_id)

@ -18,8 +18,12 @@ class Command(BaseCommand):
def handle(self, *args, **options):
if options['log_name'] == '__all__':
shutil.rmtree(settings.BASE_DIR + '/logs')
try:
shutil.rmtree(settings.BASE_DIR + '/logs')
except FileNotFoundError:
pass
os.mkdir(settings.BASE_DIR + '/logs')
else:
os.remove(settings.BASE_DIR + '/logs/' + options['log_name'])
os.remove(settings.BASE_DIR + '/logs/' + options['log_name'])

@ -0,0 +1,7 @@
[program:$NAME$]
command=$CELERY_PATH$ -A lms $NAME$ -l=$LOG_LEVEL$
directory=$PROJECT_PATH$
user=$USER$
stdout_logfile=$PROJECT_PATH$/logs/$NAME$.log
autorestart=true
redirect_stderr=true

@ -0,0 +1,7 @@
[program:beat]
command=/www/servers/python-server/bin/celery -A lms beat -l=info
directory=/www/servers/python-server/go.skillbox.ru
user=skillbox
stdout_logfile=/www/servers/python-server/go.skillbox.ru/logs/beat.log
autorestart=true
redirect_stderr=true

@ -0,0 +1,7 @@
[program:flower]
command=/www/servers/python-server/bin/celery -A lms flower -l=info
directory=/www/servers/python-server/go.skillbox.ru
user=skillbox
stdout_logfile=/www/servers/python-server/go.skillbox.ru/logs/flower.log
autorestart=true
redirect_stderr=true

@ -0,0 +1,7 @@
[program:worker]
command=/www/servers/python-server/bin/celery -A lms worker -l=info
directory=/www/servers/python-server/go.skillbox.ru
user=skillbox
stdout_logfile=/www/servers/python-server/go.skillbox.ru/logs/worker.log
autorestart=true
redirect_stderr=true

@ -1,7 +1,7 @@
[program:schedule]
command=/home/andrey/skillbox/bin/celery -A lms beat -l=info
directory=/home/andrey/skillbox/go.skillbox.ru
user=andrey
command=celery -A lms beat -l=info
directory=/www/servers/python-server/go.skillbox.ru
user=www
stdout_logfile=/home/andrey/skillbox/go.skillbox.ru/logs/schedule.log
autorestart=true
redirect_stderr=true
redirect_stderr=true

Loading…
Cancel
Save