Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

Дизайн и модификация Invision Community

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

Планировщик задач

Приветствую. Уважаемые форумчане, встал вопрос, как через планировщик задач запустить ежедневную очистку определенных таблиц, а именно:

search_keywords

spider_logs

task_logs

inline_notifications

core_share_links_log

 

т.к. эти таблицы со временем увеличиваются в размере, и занимают много дискового пространства.

Заранее спасибо за ответы!

Рекомендованные сообщения

3 (spider_logs, task_logs, core_share_links_log) из 5 таблиц очищаются по задаче \admin\applications\core\tasks\logprune.php, если установлены настройки.

logs.png

  • Автор

спасибо а как остальные очищать? а так же таблицу sessions она растет и растет, возможно потому что стоит генератор трафика?

Добавьте в указанный файл код для очистки других таблиц

 

- search_keywords. Не имеет колонки с временем. Можно только полностью очистить.

$this->DB->delete("search_keywords");

 

- inline_notifications.

$this->DB->delete("inline_notifications", "notify_sent < " . (time() - $this->deleteTime));

 

 

а так же таблицу sessions

Эта таблица также очищается периодически

  • Автор

так правильно? или я что-то не так делаю?

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

Можно за пределами 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));

  • Автор

а с какой периодичностью эти таблицы будут очищаться?

а с какой периодичностью эти таблицы будут очищаться?

 

Так посмотрите в АЦ в планировщике задач.

  • Автор

вы меня простите, но я не знаю к какой именно задаче он относится(

  • Автор

нашел, очистка журналов, спасибо вам большое!

  • Автор

Планировщик запустил, но таблица так и не очистилась, в чем может быть проблема? код вставил ваш:

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

но таблица так и не очистилась

Какая именно?

  • Автор

sessions не очищается

Так там записи так долго не хранятся.

 

Можете просто без условия запускать

$this->DB->delete("sessions");

Хотя не вижу смысла, т.к. старые сессии также удаляются другой задачей

  • Автор

отлично! спасибо большое, лайкну завтра, лимит(

  • 2 недели спустя...
  • Автор

Приветствую всех еще раз. Возникла проблема, генератор трафика ломает таблицу 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               |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'

Изменено пользователем 9IPOCTb

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.