[Модуль] Optimizer (optimizer)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Контактная информация:

[Модуль] Optimizer (optimizer)

Сообщение sergejey »

Добавил в маркет модуль, который предназначен для оптимизации истории значений свойств, хранящихся в системе. Фактически, это замена вот этого скрипта. Работает точно так же, только более удобный интерфейс добавления правил оптимизации.

Для добавления правила надо сначало провести анализ (кнопка Analyze):

Изображение

После анализа можно добавить отдельные значения в правила оптимизации:
Изображение

хранить историю, дней: Все значения более количества дней будут убиваться

Optimize:
  • None - Не оптимизировать
  • AVG - Среднее
  • MAX - По максимуму
  • SUM - Сумма
Алгоритм: Оптимизация работает по прогрессивной шкале, в зависимости от старости данных. Самые свежие с самым малым интервалом усредняются (3 минуты), старше одного дня 20 минут, старше недели 60 минут, старше месяца 2 часа.

Важно: Значения класса и объекта можно оставлять пустыми, тогда правило оптимизации будет применено ко всем свойствам с таким названием. Т.е. нет необходимости (но есть возможность) добавлять индивидуальные правила для каждого свойства -- можно делать общие.

По кнопке Optimize Now происходит оптимизация данных в соответствие с добавленными настройками
Изображение

В общих настройках можно задать автоматический запуск процесса оптимизации раз в сутки в указанное время:
Изображение

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am

Re: Модуль Optimizer

Сообщение olehs »

Настроил 3 правила на самые большие свойства.
Нажал Optimize Now.
Сразу же открылась новая вкладка Optimize.
Повторный Анализ показал, что к-во данных не изменилось, а судя по описанию алгоритма - должно было.

UPD. Нашел ошибочку в шаблоне. Создал Pull Request
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Контактная информация:

Re: Модуль Optimizer

Сообщение sergejey »

Ага, спасибо, исправил.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am

Re: Модуль Optimizer

Сообщение olehs »

Это Вам спасибо за модуль.
А может еще где-то set_time_limit добавить?
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Контактная информация:

Re: Модуль Optimizer

Сообщение sergejey »

olehs писал(а):Это Вам спасибо за модуль.
А может еще где-то set_time_limit добавить?
Да, в метод optimizeAll надо добавить set_time_limit(0);
У меня доступа к исходникам сейчас нет, так что в понедельник залью. Без этого оно тоже будет работать, но только в автоматическом режиме -- вручную после 60 секунд отрубается.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
Amarok
Сообщения: 1434
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Контактная информация:

Re: Модуль Optimizer

Сообщение Amarok »

sergejey писал(а):В общих настройках можно задать автоматический запуск процесса оптимизации раз в сутки в указанное время:
Изображение
А минуты не задаются :cry: Хочу оптимизацию в 5:11 :)
Моя Алиска живёт на Proxmox в Debian 12
smoker_vvo
Сообщения: 113
Зарегистрирован: Пт дек 14, 2012 3:46 am

Re: Модуль Optimizer

Сообщение smoker_vvo »

Знакомые грабли.... Надо бы как то убрать...
Fatal error: Maximum execution time of 60 seconds exceeded in C:\_majordomo\htdocs\lib\mysqli.class.php on line 146
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Контактная информация:

Re: Модуль Optimizer

Сообщение sergejey »

Проблему с лимитом времени исправил.
Минуты нельзя настраивать из-за того, что модуль подписывается на событие HOURLY, т.е. раз в час в 00 минут вызывается процедура обработки и в ней уже сравнивается время.
Кстати, кто разрабатывает свои модули, обратите внимание как это сделано -- в качестве альтернативы прописывания в onNewHour.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
Amarok
Сообщения: 1434
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Контактная информация:

Re: Модуль Optimizer

Сообщение Amarok »

sergejey писал(а):Минуты нельзя настраивать из-за того, что модуль подписывается на событие HOURLY, т.е. раз в час в 00 минут вызывается процедура обработки и в ней уже сравнивается время.
А через ссылку (getURL) возможно оптимизацию запустить?
Моя Алиска живёт на Proxmox в Debian 12
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Контактная информация:

Re: Модуль Optimizer

Сообщение sergejey »

Amarok писал(а):
sergejey писал(а):Минуты нельзя настраивать из-за того, что модуль подписывается на событие HOURLY, т.е. раз в час в 00 минут вызывается процедура обработки и в ней уже сравнивается время.
А через ссылку (getURL) возможно оптимизацию запустить?
Можно попробовать:

Код: Выделить всё

getURL("http://localhost/admin.php?pd=pz_&md=panel&inst=&action=optimizer&optimizenow=1",0); 

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Ответить