27 сентября, 2015
0 Comments
1 category
Захотелось скрестить ежа с ужом систему голосования с графикой, чтобы видеть в динамике, за какой пункт опроса отдаются голоса. При этом, очень хотелось, чтобы всё было автоматизировано по самое “не хочу.
Потребовалось написать два скрипта для cron. Один отвечает за обновление данных, второй – за рисование графиков. Сами скрипты не публикую, там куча внутренних подробностей, но идеи такие:
- Скрипт обновления
- Создаёт список всех открытых опросов
- Для каждого получаем список возможных ответов
- Проверяет существование rrd-базы ориентируясь на timestamp начала опроса, если надо – создаёт с 1 элементом данных.
- Проверяет наличие нужного DS по названию (номеру, рассматриваемому, как строка) ответа, если надо добавляет. Добавление производится через perl скрипт, поскольку rrdtool с параметром tune я, почему-то, не смог заставить работать.
- Формируется шаблон параметров (порядок следования) для обновления набора данных
- Ну и собственно rrdtool update -t <шаблон> N:<данные в том же порядке>
- Скрипт рисования
- Очень похоже на предыдущий, сначала список всех открытых опросов
- Для каждого – несколько ответов с максимальным количеством голосов с обратной сортировкой.
- В цикле создаётся скрипт. Временный. Связано это с тем, что мне надоело воевать с экранированием символов в bash. Слишком сложно получается. А тут – нормально и посмотреть можно на временный файл, если что не заработает.
- Ну и запустить скрипт, который выводит на экран размер создаваемых изображений. Можно пустить на /dev/null
- Отдельный web-сайт
- Получившиеся изображения я кидаю на отдельный сайт
- Связано с тем, что эти изображения не должны кешироваться. Точнее, принцип кеширования немного другой. Проще сделать no-cache.
Получается примерно так:
Ссылки
- Плагин опросов на сайте wordpress
- Замечание по руссификации wp-polls, сам файл нужно скачивать с трекера
- Официальный сайт, если так можно выразиться.
- RRDTool: официальное руководство (англ.)
- RRDTool. Теория и практика.
- RRDtool: удобный инструмент мониторинга сети
- Мониторинг системы с помощью RRDtool
- adding new datasource to an existing RRD – добавление набора данных (DS) через perl-script
Category: WordPress