Когда использовать переходные процессы, а когда нет? - PullRequest
2 голосов
/ 07 марта 2012

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

Последние дни я возился с переходными процессами в Wordpress. В некоторых уроках они говорят: « Если вы используете пользовательские запросы и их результаты кэшируются: используйте переходный процесс ». Звучит хорошо, но мне интересно, когда использовать переходные процессы, чтобы получить реальное преимущество. Я имею в виду, что даже при использовании переходных процессов в фоновом режиме должно быть как минимум два запроса, не так ли? Первый для проверки достоверности, второй для самого переходного процесса.

Так действительно ли полезно использовать переходный процесс, т.е. для пользовательского WP_Query? Большое спасибо за вашу помощь и мысли.

1 Ответ

3 голосов
/ 07 марта 2012

Кажется довольно простым.Это вспомогательный класс, который позволяет вам хранить объекты в стиле 'memcache'.Сначала вы устанавливаете переходный процесс

function do_something_here($callback_param = 'value'){
  $key = 'do_something_' . $callback_param;//set the name of our transient equal to the value of the callback param being passed in the function.
  $my_query = get_transient($myKey);  //if we've stored this request before, then use it.
  if($my_query !=== false){
    //we found a previous existing version of this query. let's use it.
    return $my_query;
  }else{
    //it doesn't exist, we need to build the transient.
    //do our database querying here, global $wpdb; etc
    //We are going to pretend our returned variable is 'george'
    $value = george;
    $length = 60*60*24; //how long do we want the transient to exist? 1 day here.
    set_transient($key, $value, $length);
    return $value;
  }
}

Теперь, когда мы создали наш триггер и привязали его к имени $ key, мы можем получить к нему доступ в любое время, используя точное значение, которое подразумевает ключ (которое мы объявилиранее).

echo 'I wanted to do something, so : ' . do_something('value') . ' is what i did! ';

Используя этот формат, вы можете хранить запросы в мире, подобном «кешу», и использовать их для генерации ваших ответов.Это похоже на использование 'триггерных' событий в MySql.Фактически, это ЧАСТЬ ТЕХНИКИ, обычно называемая длинным опросом.

...