Автоматически обновлять кэш


8

Я хотел бы обновить весь кэш через определенные интервалы, например, один раз в день в полночь (как пример). Как я могу сделать это?

Я использую CE 1.9.1.


1
установить задание cron и очистить кеш
MeenakshiSundaram R

Хорошо, в основном я спрашиваю, как это сделать. Как мне установить cronjob для этого?
Tijdschriftenzo

вы установили magento cron на вашем сервере?
Амит Бера


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

Ответы:


14

Если в вашей системе magento, magento cron jobs are working properlyто вы определяете, a cronjobкакой огонь в полночь, и очищаете кеш .

<crontab>
    <jobs>
        <clean_cache_midnight><!-- identifier -->
             <schedule>
                 <cron_expr>0 0 * * *</cron_expr> <!-- run cronjob on midnight -->
             </schedule>
            <run>
                <model>MyModule_Model_Group_Class_Name::functionName</model>
            </run>
        </clean_cache_midnight>
    </jobs>
</crontab>

И класс

<?php
class [ModuleNameSpace]_[ModuleName]_Model_Mycron
{
    public function functionName(){

     /**
     * Flush all magento cache
     */
     Mage::app()->cleanCache();
    }
}

Полный модуль:

создать config.xmlв app / code / community / Amit / Cleancache / etc /

<?xml version="1.0" encoding="utf-8"?>
<config>
<modules>
    <Amit_Cleancache>
        <version>1.0.0</version>
    </Amit_Cleancache>
</modules>
    <global>
        <models>
            <cleancache>
                <class>Amit_Cleancache_Model</class>
            </cleancache>
        </models>
    </global>
    <crontab>
        <jobs>
            <clean_cache_midnight><!-- identifier -->
                 <schedule>
                     <cron_expr>0 0 * * *</cron_expr> <!-- running cronjob on midnight -->
                 </schedule>
                <run>
                    <model>cleancache/Fire::fireCacheonMidnight</model>
                </run>
            </clean_cache_midnight>
        </jobs>
    </crontab>
</config>

Файл2: создать Fire.php в приложении / код / ​​сообщество / Amit / Cleancache / модель /

код:

<?php
class Amit_Cleancache_Model_Fire
{
    public function fireCacheonMidnight(){

     /**
     * Flush all magento cache
     */
     Mage::app()->cleanCache();
    }
}

File3: файл конфигурации модуля Amit_Cleancache.xml в приложении / etc / modules /

<?xml version="1.0" encoding="utf-8"?>
<config>
    <modules>
        <Amit_Cleancache>
            <active>true</active>
            <codePool>community</codePool>
        </Amit_Cleancache>
    </modules>
</config>

Файл config.xml генерирует эту ошибку: «Эта страница содержит следующие ошибки: ошибка в строке 14 в столбце 14: несоответствие открывающего и завершающего тегов: строка модели 0 и глобальный Ниже приведено отображение страницы до первой ошибки. 1.0. 0 Amit_Cleancache_Model "
Tijdschriftenzo

тег не был близок .. у меня есть обновление ответа .. сейчас проверю
Амит Бера

Отлично, работает как шарм!
Tijdschriftenzo

@AmitBera Как я могу установить работу cron на моем сервере, как каждую ночь автообновлять кеш и переиндексировать.
Zus

@AmitBera Я создал простой код для очистки кэша. Код: justpaste.it/6rjvd и конфигурация cron: snag.gy/AZowtf.jpg . Все еще cron не работает, правильно, что я сделал?
Gem

-1

В Magento> управление кешем> 3 последних варианта кеша:

Дополнительное управление кэшем. Flush Catalog Images Файлы кеша. Flush Swatch Images Cache Предварительно сгенерированные настраиваемые образцы изображений. Сброс JavaScript / CSS Cache Themes Файлы JavaScript и CSS объединены в один файл.

возможно ли очистить эти типы кеша с помощью автоматического задания cron?

Причина в том, что:

Если я не очищаю эти кеши регулярно, то происходит сбой REDIS, и все падает.

Спасибо :)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.