Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
9IPOCTb

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

Recommended Posts

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

search_keywords

spider_logs

task_logs

inline_notifications

core_share_links_log

 

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

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

Share this post


Link to post

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

logs.png

  • Upvote 1

Share this post


Link to post

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

Share this post


Link to post

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

 

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

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

 

- inline_notifications.

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

 

 

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

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

  • Upvote 2

Share this post


Link to post

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

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

Share this post


Link to post

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

Share this post


Link to post

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

Share this post


Link to post

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

 

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

  • Upvote 1

Share this post


Link to post

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

Share this post


Link to post

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

Share this post


Link to post

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

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

Share this post


Link to post

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

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

  • Upvote 1

Share this post


Link to post

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

Share this post


Link to post

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

 

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

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

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

  • Upvote 1

Share this post


Link to post

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

Share this post


Link to post

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
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...