Опубликовано: 31 октября 20187 г Приветствую. Уважаемые форумчане, встал вопрос, как через планировщик задач запустить ежедневную очистку определенных таблиц, а именно:search_keywordsspider_logstask_logsinline_notificationscore_share_links_log т.к. эти таблицы со временем увеличиваются в размере, и занимают много дискового пространства.Заранее спасибо за ответы!
Опубликовано: 1 ноября 20187 г 3 (spider_logs, task_logs, core_share_links_log) из 5 таблиц очищаются по задаче \admin\applications\core\tasks\logprune.php, если установлены настройки.
Опубликовано: 1 ноября 20187 г Автор спасибо а как остальные очищать? а так же таблицу sessions она растет и растет, возможно потому что стоит генератор трафика?
Опубликовано: 1 ноября 20187 г Добавьте в указанный файл код для очистки других таблиц - search_keywords. Не имеет колонки с временем. Можно только полностью очистить.$this->DB->delete("search_keywords"); - inline_notifications.$this->DB->delete("inline_notifications", "notify_sent < " . (time() - $this->deleteTime)); а так же таблицу sessions Эта таблица также очищается периодически
Опубликовано: 1 ноября 20187 г Автор так правильно? или я что-то не так делаю? if ( $this->settings['ipb_prune_mod'] ) { $this->DB->delete( "moderator_logs", "ctime < " . (time() - $this->deleteTime) ); $this->DB->delete("search_keywords"); $this->DB->delete("sessions"); $this->DB->delete("inline_notifications", "notify_sent < " . (time() - $this->deleteTime)); }
Опубликовано: 1 ноября 20187 г Можно за пределами if написать if ( $this->settings['ipb_prune_mod'] ) { $this->DB->delete( "moderator_logs", "ctime < " . (time() - $this->deleteTime) ); } $this->DB->delete("search_keywords"); $this->DB->delete("sessions"); $this->DB->delete("inline_notifications", "notify_sent < " . (time() - $this->deleteTime));
Опубликовано: 1 ноября 20187 г а с какой периодичностью эти таблицы будут очищаться? Так посмотрите в АЦ в планировщике задач.
Опубликовано: 1 ноября 20187 г Автор вы меня простите, но я не знаю к какой именно задаче он относится(
Опубликовано: 1 ноября 20187 г Автор Планировщик запустил, но таблица так и не очистилась, в чем может быть проблема? код вставил ваш:if ( $this->settings['ipb_prune_mod'] ) { $this->DB->delete( "moderator_logs", "ctime < " . (time() - $this->deleteTime) ); } $this->DB->delete("search_keywords"); $this->DB->delete("sessions", "running_time < " . (time() - $this->deleteTime)); $this->DB->delete("inline_notifications", "notify_sent < " . (time() - $this->deleteTime));
Опубликовано: 1 ноября 20187 г Так там записи так долго не хранятся. Можете просто без условия запускать$this->DB->delete("sessions");Хотя не вижу смысла, т.к. старые сессии также удаляются другой задачей
Опубликовано: 12 ноября 20187 г Автор Приветствую всех еще раз. Возникла проблема, генератор трафика ломает таблицу sessions, хотя вроде раньше он работал спокойно, в чем может быть причина?ошибка из логов:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Date: Mon, 12 Nov 2018 05:04:12 +0000 Error: 144 - Table './ipbsessions' is marked as crashed and last (automatic?) repair failed IP Address: xxx.xxx.xxx.xxx - /index.php/topic/42528/?view=getlastpost ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- mySQL query error: DELETE FROM ipbsessions WHERE id='google=ba117dee326abf40cbf53e8e1fa9df77_session' .--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------. | File | Function | Line No. | |----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------| | admin/sources/classes/session/publicSessions.php | [db_main_mysql].delete | 1311 | '----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------' | admin/sources/classes/session/publicSessions.php | [publicSessions]._destroySessions | 1133 | '----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------' | admin/sources/classes/session/publicSessions.php | [publicSessions]._createGuestSession | 505 | '----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------' | admin/sources/base/ipsRegistry.php | [publicSessions].__construct | 3890 | '----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------' | admin/sources/base/ipsRegistry.php | [ips_MemberRegistry].init | 3723 | '----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------' | admin/sources/base/ipsRegistry.php | [ips_MemberRegistry].instance | 616 | '----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------' Изменено 12 ноября 20187 г пользователем 9IPOCTb
Приветствую. Уважаемые форумчане, встал вопрос, как через планировщик задач запустить ежедневную очистку определенных таблиц, а именно:
search_keywords
spider_logs
task_logs
inline_notifications
core_share_links_log
т.к. эти таблицы со временем увеличиваются в размере, и занимают много дискового пространства.
Заранее спасибо за ответы!