Jump to content

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


9IPOCTb
 Share

Recommended Posts

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

search_keywords

spider_logs

task_logs

inline_notifications

core_share_links_log

 

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

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

Link to comment
Share on other sites

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

logs.png

  • Upvote 1
Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

 

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

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

 

- inline_notifications.

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

 

 

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

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

  • Upvote 2
Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

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

  • Upvote 2
Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

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

 

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

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

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

  • Upvote 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...