Функция wp_cache_flush_runtime()
используется для полной очистки объектного кэша, если он хранится в памяти (так называемое «runtime cache»). Эта функция полезна для случаев, когда важно освободить память от временного кэша, например, при обработке больших объемов данных, частых запросах или при использовании кэширования для длительных процессов (например, WP-CLI или крон-задачи). При активированном постоянном кэшировании (например, через Redis) функция ничего не делает.
wp_cache_flush_runtime(): bool
Возвращаемое значение
bool
— Возвращаетtrue
при успешной очистке кэша в памяти иfalse
при ошибке или если используется постоянное кэширование.
Пример 1: Очистка кэша в памяти при загрузке большого объема данных
В этом примере кэш в памяти очищается каждые 100 итераций при добавлении записей в базу данных, чтобы предотвратить переполнение памяти.
$counter = 0;
foreach ( $large_data_set as $item ) {
wp_insert_post( $item ); // Вставка данных
$counter++;
if ( $counter === 100 ) {
wp_cache_flush_runtime(); // Очистка кэша каждые 100 записей
$counter = 0;
}
}
Этот пример особенно полезен, если работа с данными требует большого объема памяти и создается временный кэш.
Пример 2: Использование wp_cache_flush_runtime()
в крон-задаче
Очистка кэша в памяти может быть полезна при выполнении долгих крон-задач. Например, при обработке данных раз в сутки.
function daily_data_processing() {
// Выполнение продолжительных вычислений
for ( $i = 1; $i <= 1000; $i++ ) {
// Обработка данных
process_data_chunk( $i );
// Очищаем кэш в памяти каждые 200 итераций
if ( $i % 200 === 0 ) {
wp_cache_flush_runtime();
}
}
}
add_action( 'daily_data_event', 'daily_data_processing' );
В данном случае кэш очищается через регулярные интервалы, чтобы оптимизировать использование оперативной памяти.
Пример 3: Очистка кэша в сценариях WP-CLI
При выполнении команд WP-CLI для обработки большого количества данных, очистка кэша позволяет улучшить производительность и избежать переполнения памяти.
if ( defined( 'WP_CLI' ) && WP_CLI ) {
for ( $i = 0; $i < 5000; $i++ ) {
wp_update_post( [ 'ID' => $i, 'post_status' => 'publish' ] );
// Очищаем кэш каждые 500 записей
if ( $i % 500 === 0 ) {
wp_cache_flush_runtime();
}
}
}
Эта команда очищает временный кэш каждые 500 записей, улучшая производительность при выполнении CLI-команд.
Заключение
Функция wp_cache_flush_runtime()
идеально подходит для задач, требующих частой очистки кэша в оперативной памяти. Это полезно при создании временных данных, их быстрой обработке и освобождении ресурсов. Она активно используется в длительных задачах и WP-CLI, чтобы предотвратить переполнение памяти, особенно в случаях, когда включено временное кэширование.