Страница 15 из 18

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

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

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

Добавлено: Пт мар 23, 2018 7:45 pm
olegvolk75
Подскажите, как более правильно обрабатывать периодические события, через крон или в методе OnNewMinut ставить проверку на совпадение времени? Есть ли какие-то отличия?

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

Добавлено: Пт мар 23, 2018 8:38 pm
Logrus
насколько я понял через крон условие срабатывания (время) сверяется раз в 5 сек.
через минутный таймер раз в минуту
п.с. но в минутном таймере есть не только сравнение со временем, а оно одно и очень не затратное, но и как пример посмотри на режимы ночной или темное время суток, так запрос на статус режима, двух переменных времени еще и в отдельное свойство статус режима пишут и дергают метод, который и статус ставит (с кодом ЖОПА, только что смотрел подсказывал про часовой таймер в классовом методе два раза вызов обновления погоды, но наверное мимо пропустил пользователь)
еще кодом в таймере и цикл можно уронить, и если вызовы не правильно прописаны замедлить все
т.ч. зависит от кода и можно не только эти два варианта применять

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

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

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

Добавлено: Сб мар 24, 2018 4:35 pm
olegvolk75
Logrus писал(а): т.ч. зависит от кода и можно не только эти два варианта применять
Т.е. оба варианта более-менее равнозначны. А какие ещё варианты есть?

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

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

п.с. то что внятных примеров по их применению нет, ну увы
а на эвенты стоит посмотреть!

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

Добавлено: Сб мар 24, 2018 6:07 pm
Logrus
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 кб уменьшилась

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

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

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

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

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

SQLExec("update patterns set LOG='' WHERE TITLE='название шаблона'"); 

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

Добавлено: Сб мар 24, 2018 11:09 pm
fandaymon
Почистить поле лога с какой-то даты можно примерно так

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

$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); 

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

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

п.с. то что внятных примеров по их применению нет, ну увы
а на эвенты стоит посмотреть!
В общих чертах понятно, будем изучать.
Спасибо!