Модуль Optimizer

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

Модераторы: Bagir, Ivan, Vit, immortal, PAV

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

Модуль Optimizer

Сообщение sergejey » Пт фев 26, 2016 6:42 pm

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

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

Изображение

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

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

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

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

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

В общих настройках можно задать автоматический запуск процесса оптимизации раз в сутки в указанное время:
Изображение
За это сообщение автора sergejey поблагодарили (всего 6):
ErmolenkoM (Пт фев 26, 2016 8:24 pm) • Vit (Сб фев 27, 2016 4:48 am) • Amarok (Сб фев 27, 2016 10:31 am) • skysilver (Сб фев 27, 2016 12:20 pm) • kawkay (Сб фев 27, 2016 10:10 pm) • Otto (Чт апр 13, 2017 9:57 am)
Рейтинг: 11.11%

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

Re: Модуль Optimizer

Сообщение olehs » Пт фев 26, 2016 9:17 pm

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

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

Re: Модуль Optimizer

Сообщение sergejey » Пт фев 26, 2016 10:05 pm

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

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

Re: Модуль Optimizer

Сообщение olehs » Пт фев 26, 2016 10:07 pm

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

Re: Модуль Optimizer

Сообщение sergejey » Пт фев 26, 2016 10:44 pm

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

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

Re: Модуль Optimizer

Сообщение Amarok » Вс фев 28, 2016 12:41 pm

sergejey писал(а):В общих настройках можно задать автоматический запуск процесса оптимизации раз в сутки в указанное время:
Изображение
А минуты не задаются :cry: Хочу оптимизацию в 5:11 :)
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
smoker_vvo
Сообщения: 113
Зарегистрирован: Пт дек 14, 2012 3:46 am
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Re: Модуль Optimizer

Сообщение smoker_vvo » Вс фев 28, 2016 1:15 pm

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

Re: Модуль Optimizer

Сообщение sergejey » Пн фев 29, 2016 11:43 am

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

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

Re: Модуль Optimizer

Сообщение Amarok » Пн фев 29, 2016 12:45 pm

sergejey писал(а):Минуты нельзя настраивать из-за того, что модуль подписывается на событие HOURLY, т.е. раз в час в 00 минут вызывается процедура обработки и в ней уже сравнивается время.
А через ссылку (getURL) возможно оптимизацию запустить?
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
Аватара пользователя
sergejey
Site Admin
Сообщения: 4255
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1264 раза
Контактная информация:

Re: Модуль Optimizer

Сообщение sergejey » Пн фев 29, 2016 12:47 pm

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

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

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

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