вопросы от новичка

Всё, что не подходит под вышеперечисленные разделы

Модератор: immortal

nikolayhp
Сообщения: 1
Зарегистрирован: Вт мар 20, 2018 4:09 pm
Благодарил (а): 1 раз
Поблагодарили: 0

Re: вопросы от новичка

Сообщение nikolayhp » Вт мар 20, 2018 4:19 pm

Ребят, подскажите пожалуйста!
Как удалить логи срабатывания шаблона. (LOG: 2018-03-20 14:59:04 Pattern matched) А то за год на собиралось.
olegvolk75
Сообщения: 141
Зарегистрирован: Сб мар 11, 2017 7:03 pm
Благодарил (а): 50 раз
Поблагодарили: 15 раз

Re: вопросы от новичка

Сообщение olegvolk75 » Пт мар 23, 2018 7:45 pm

Подскажите, как более правильно обрабатывать периодические события, через крон или в методе OnNewMinut ставить проверку на совпадение времени? Есть ли какие-то отличия?
Orange Pi PCPlus, Debian Stretch with Armbian Linux 4.19.62-sunxi
Logrus
Сообщения: 2079
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: вопросы от новичка

Сообщение Logrus » Пт мар 23, 2018 8:38 pm

насколько я понял через крон условие срабатывания (время) сверяется раз в 5 сек.
через минутный таймер раз в минуту
п.с. но в минутном таймере есть не только сравнение со временем, а оно одно и очень не затратное, но и как пример посмотри на режимы ночной или темное время суток, так запрос на статус режима, двух переменных времени еще и в отдельное свойство статус режима пишут и дергают метод, который и статус ставит (с кодом ЖОПА, только что смотрел подсказывал про часовой таймер в классовом методе два раза вызов обновления погоды, но наверное мимо пропустил пользователь)
еще кодом в таймере и цикл можно уронить, и если вызовы не правильно прописаны замедлить все
т.ч. зависит от кода и можно не только эти два варианта применять
Последний раз редактировалось Logrus Пт мар 23, 2018 8:48 pm, всего редактировалось 1 раз.
За это сообщение автора Logrus поблагодарил:
olegvolk75 (Сб мар 24, 2018 4:34 pm)
Рейтинг: 1.16%
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Logrus
Сообщения: 2079
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: вопросы от новичка

Сообщение Logrus » Пт мар 23, 2018 8:46 pm

nikolayhp писал(а):Ребят, подскажите пожалуйста!
Как удалить логи срабатывания шаблона. (LOG: 2018-03-20 14:59:04 Pattern matched) А то за год на собиралось.
в пма таблица patterns строка (если я это правильно назвал) LOG
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
olegvolk75
Сообщения: 141
Зарегистрирован: Сб мар 11, 2017 7:03 pm
Благодарил (а): 50 раз
Поблагодарили: 15 раз

Re: вопросы от новичка

Сообщение olegvolk75 » Сб мар 24, 2018 4:35 pm

Logrus писал(а): т.ч. зависит от кода и можно не только эти два варианта применять
Т.е. оба варианта более-менее равнозначны. А какие ещё варианты есть?
Orange Pi PCPlus, Debian Stretch with Armbian Linux 4.19.62-sunxi
Logrus
Сообщения: 2079
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: вопросы от новичка

Сообщение Logrus » Сб мар 24, 2018 5:25 pm

не не равнозначны, они разные и под задачу лучше смотреть
свойство по изменению метод, эвент registerEvent('name',$this->name,2); , таймер setTimeOut (проверка раз в 5 сек), планировщик заданий AddScheduledJob("title","commands",$datetime, $expire=60); (обертка над таймером), наверняка еще что-нибудь

п.с. то что внятных примеров по их применению нет, ну увы
а на эвенты стоит посмотреть!
За это сообщение автора Logrus поблагодарил:
olegvolk75 (Вс мар 25, 2018 12:47 pm)
Рейтинг: 1.16%
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Logrus
Сообщения: 2079
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: вопросы от новичка

Сообщение Logrus » Сб мар 24, 2018 6:07 pm

Logrus писал(а):
nikolayhp писал(а):Ребят, подскажите пожалуйста!
Как удалить логи срабатывания шаблона. (LOG: 2018-03-20 14:59:04 Pattern matched) А то за год на собиралось.
в пма таблица patterns строка (если я это правильно назвал) LOG
к примеру удаление чата алисы

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

SQLExec("DELETE FROM shouts WHERE TO_DAYS(NOW())-TO_DAYS(ADDED)>1");
очистка всех таблиц с нулевым сроком хранения (бывает мусор остается)

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

SQLExec("DELETE phistory.* FROM phistory LEFT JOIN pvalues ON phistory.VALUE_ID = pvalues.id WHERE  pvalues.id IS NULL");
вопрос как сделать очистку в таблицах LOG
у меня не много было с 40 до 7 кб уменьшилась
Последний раз редактировалось Logrus Сб мар 24, 2018 9:34 pm, всего редактировалось 1 раз.
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: вопросы от новичка

Сообщение fandaymon » Сб мар 24, 2018 9:12 pm

Log по шаблонам находится в поле LOg таблицы patterns. Частично его очистить будет проблематично, так как для это надо будет записать поле в переменную. Разбить переменную на строки, проанализировать 10 символов каждой строки в которых будет дата, удалить не нужные строки и записать в поле обратно. А если просто обнулить лог, то

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

SQLExec("update patterns set LOG=''"); 
Если надо обнулить лог для какого-то конкретного шаблона

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

SQLExec("update patterns set LOG='' WHERE TITLE='название шаблона'"); 
За это сообщение автора fandaymon поблагодарили (всего 2):
Logrus (Сб мар 24, 2018 9:25 pm) • nikolayhp (Чт апр 26, 2018 8:43 pm)
Рейтинг: 2.33%
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: вопросы от новичка

Сообщение fandaymon » Сб мар 24, 2018 11:09 pm

Почистить поле лога с какой-то даты можно примерно так

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

$from_date='2018-01-01'; // Дата начиная с которой останется лог
$rec=SQLSelectOne("select * from patterns where TITLE='название шаблона'");
$log=explode("\n",$rec['LOG']);
$new_log='';

foreach ($log as $log_event) {
 if (strtotime($from_date)<=strtotime(substr($log_event,0,19))) {
  $new_log .=  $log_event ."\n";
 }
}

$rec['LOG']=$new_log;
SQLUpdate('patterns', $rec); 
За это сообщение автора fandaymon поблагодарил:
Logrus (Сб мар 24, 2018 11:38 pm)
Рейтинг: 1.16%
olegvolk75
Сообщения: 141
Зарегистрирован: Сб мар 11, 2017 7:03 pm
Благодарил (а): 50 раз
Поблагодарили: 15 раз

Re: вопросы от новичка

Сообщение olegvolk75 » Вс мар 25, 2018 12:47 pm

Logrus писал(а):не не равнозначны, они разные и под задачу лучше смотреть
свойство по изменению метод, эвент registerEvent('name',$this->name,2); , таймер setTimeOut (проверка раз в 5 сек), планировщик заданий AddScheduledJob("title","commands",$datetime, $expire=60); (обертка над таймером), наверняка еще что-нибудь

п.с. то что внятных примеров по их применению нет, ну увы
а на эвенты стоит посмотреть!
В общих чертах понятно, будем изучать.
Спасибо!
Orange Pi PCPlus, Debian Stretch with Armbian Linux 4.19.62-sunxi
Ответить