Джуниоры, не всегда знают о сервисах и их существовании. Но не смотря на это, надобность в инструменте для логирования подобных вещей не отпадает. Как и правильная настройка crontab. Можно мониторить ошибки с помощь cron-a, но ведь это лишь оповещения, а вот происходящее не всегда проясняет. Так же и не указывает на момент, когда впервые была ошибка(если оповещение настроены позже кем-то другим). Помимо этого, важно знать прогресс того, как работал скрипт в определенные промежутки времени. Например вы работаете со статистикой, проводите калькуляцию и ежедневные вставки в БД. С каждым днем данных становится больше. Тут же начинаются тормоза из-за раздутости таблицы. Понятно что нужно рефакторить код, возможно создавать партиции, индексы, проводить какие-то оптимизации. И опять же следить за выполнением и поведением скриптов, на протяжении какого-то времени. В прошлых постах я упоминал PinbaEngine. Но ведь не в каждом проекте есть возможность настроить подобную связку. Даже поставив, придется модифицировать код и изгаляться над интерфейсом для сия творенья. Что не всегда хочется. В данном посте хочу рассказать о маленькой батарейке, под названием django-mmc и о том, как правильно настроить это добро.
Создание проекта
$ pip install virtualenvwrapper $ mkvirtualenv habr $ pip install Django $ django-admin.py startproject habr
Заметил и то, что многие, даже бывалые не используют такую вкусную вещь, как virtualenvwrapper. Полезная штука. Можно почитать о ней тут.
Установка батарейки
$ cd habr/ $ pip install django-mmc
Добавим батарейку mmc в INSTALLED_APPS и синхронизируем БД:
$ ./manage.py syncdb --noinput
Теперь же инициализируем необходмые компоненты библиотеки где-нибудь в инит файле, до момента инициализации аппов.
Добавим импорт и вызов в файл habr/__init__.py:
from mmc.mixins import inject_management inject_management()
На этом процесс настройки завершен. Как видно нет ничего сложно и с легкостью можно подключить батарейку к любому действующему проекту.
Проверка
Для проверки необходимо выполнить несколько команд и запустить веб-север:
$ ./manage.py createsuperuser $ ./manage.py syncdb $ ./manage.py runserver
Теперь осталось лишь проверить результат в административной части проекта.
Сделать можно перейдя по адресу http://127.0.0.1:8000/admin/mmc/mmclog/
Результат
И наконец таки результат, к которому мы шли:
Настройка cron-а
Если Вы хотите получать уведомления от cron-а, до добавьте следующие строчки в начале вашего crontab:
SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games MAILTO=habr@local.host
Первые две строчки указывают на шел и путь, где нужно искать исполняемые файлы. В MAILTO указывается адрес, куда должны приходить результаты вывода фоновых задач.
Данная батарейка помогла мне своевременно выявить проблемные места в проекте, узнать какие команды отрабатывают некорректно или падают с каким-то временным промежутком и устранить данные проблему. Надеюсь она послужит как начинающим, так уже и бывалым пользователям.
ссылка на оригинал статьи http://habrahabr.ru/post/223151/
Добавить комментарий