2012-01-02 4 views
5

Я использую Magento ver1.6.1. Мне нужно программно очистить кэш Magento.Clear Magento cache

Mage::app()->getCache()->clean() 

Я использовал приведенный выше код, но он не очистил кеш.

ответ

14

попробовать это

Mage::app()->cleanCache(); 
14

Это то, что вы после:

try { 
    $allTypes = Mage::app()->useCache(); 
    foreach($allTypes as $type => $blah) { 
     Mage::app()->getCacheInstance()->cleanType($type); 
    } 
    } catch (Exception $e) { 
    // do something 
    error_log($e->getMessage()); 
    } 

Вот как вы могли бы сделать это автоматически:

http://mikebywaters.wordpress.com/2011/12/09/automatically-refresh-magento-cache/

+0

Пожалуйста, обратите внимание на счет щебета для вашего блога постов объявлений :) – Zifius

+3

@Zifius Просто сделал это :) http://twitter.com/mikebywaters –

3

Если вы с использованием Magento Enterprise (я использую 1.1 3), приведенный выше код в вышеупомянутых ответах кажется недостаточным для очистки кеша полной страницы.

Мне потребовалось некоторое время, чтобы выяснить, что происходит, но есть несколько методов, которые срабатывают в результате событий при использовании веб-интерфейса, которые не будут покрываться при использовании вышеприведенного кода. Решающее значение имеет метод cleanCacheEnterprise_PageCache_Model_Observer.

Чтобы исправить, я добавил следующий код после кода Magento Guy или Oğuz Çelikdemir.

Enterprise_PageCache_Model_Cache::getCacheInstance() ->clean(Enterprise_PageCache_Model_Processor::CACHE_TAG);

Надеется, что это спасает кто-то какое-то время!

0

Чтобы решить вашу проблему, вы можете написать сценарий bash, который очищает кеш и данные сеанса.

Magento Cache Syrup - простой скрипт bash для очистки кэш-памяти magento, сеанса, отчетов и временных данных, способ sys-admin, чтобы убедиться, что ваш веб-сайт magento работает лучше.

Этот сценарий очищает данные кэша и сеанса от установки Magento на сервере Linux (ubuntu), чтобы убедиться в том, что он разрешает пустую белую страницу Magento, вызванную данными кэша и сеанса, и гарантирует, что ваш веб-сайт Magento будет работать быстрее. Войдите в свой сервер под учетной записью root и создайте файл с именем magento_cache_syrup.sh и введите следующий код.

#!/bin/sh 
rm -rf /var/www/sl60/var/cache/* 
rm -rf /var/www/sl60/var/session/* 
rm -rf /var/www/sl60/var/report/* 

Убедитесь, что вы изменили путь в приведенном выше коде и указали его на установку пурпурного цвета. Для абсолютных новичков просто замените «/ var/www/sl60» на путь к вашему каталогу веб-сайта magento.

Как только вы исправили путь, вы можете просто запустить вышеупомянутый скрипт, вызвав его с терминала.

Это должно очистить все данные в каталогах кеша, сессии, tmp и отчетов в вашей установке Magento. Но проблема здесь не заканчивается. Нам нужно убедиться, что мы делаем это каждый раз, прежде чем мы достигнем пустой белой страницы. Чтобы решить эту проблему, мы включим задание cron на сервере, который запускает скрипт bash (magento-cache-syrup) каждые 12 часов.

Создать cronjob для запуска Баш скрипт каждые 12 часов