Cache automatisch aktualisieren


8

Ich möchte den gesamten Cache in bestimmten Intervallen aktualisieren, beispielsweise einmal am Tag um Mitternacht (als Beispiel). Wie kann ich das erreichen?

Ich benutze CE 1.9.1.



OK, im Grunde frage ich, wie das geht. Wie stelle ich einen Cronjob dafür ein?
Tijdschriftenzo

Hast du Magento Cron auf deinem Server eingestellt?
Amit Bera


1
Wenn Sie den Cache in regelmäßigen Abständen aktualisieren, würde ich Ihre Implementierung neu bewerten.
B00MER

Antworten:


14

Wenn in Ihrem Magento-System, magento cron jobs are working properlydann definieren Sie, a cronjobwelches Feuer um Mitternacht und Cache löschen .

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

Und Klasse ist

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

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

Volles Modul:

Erstellen Sie config.xmlunter 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>

Datei2: Erstellen Fire.php unter App / Code / Community / Amit / Cleancache / Model /

Code:

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

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

Datei3: Modulkonfigurationsdatei Amit_Cleancache.xml unter app / etc / modules /

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

Die Datei config.xml generiert diesen Fehler: "Diese Seite enthält die folgenden Fehler: Fehler in Zeile 14 in Spalte 14: Nicht übereinstimmende Tags öffnen und beenden: Modelle Zeile 0 und global Unten finden Sie eine Darstellung der Seite bis zum ersten Fehler. 1.0. 0 Amit_Cleancache_Model "
Tijdschriftenzo

Tag war nicht in der Nähe .. Ich habe die Antwort aktualisiert .. Jetzt überprüfen
Amit Bera

Großartig, funktioniert wie ein Zauber!
Tijdschriftenzo

@AmitBera Wie kann ich einen Cron-Job auf meinem Server festlegen, wie jeden Abend den Cache automatisch neu aktualisieren und neu indizieren?
Zus

@AmitBera Ich habe einfachen Code zum Löschen des Caches erstellt. Der Code lautet: justpaste.it/6rjvd und Cron-Konfiguration: snag.gy/AZowtf.jpg . Cron funktioniert immer noch nicht, stimmt das, was ich getan habe?
Gem

-1

In Magento> Cache-Verwaltung> die 3 letzten Cache-Optionen:

Zusätzliche Cache-Management-Flush-Katalogbilder Cache Vorgenerierte Produktbilddateien. Flush Swatch Images Cache Vorgenerierte konfigurierbare Swatches-Bilddateien. JavaScript / CSS-Cache-Themen leeren JavaScript- und CSS-Dateien zu einer Datei zusammengefasst.

Ist es möglich, diese Cache-Typen mit einem Auto-Cron-Job zu leeren?

Grund dafür ist :

Wenn ich diese Caches nicht regelmäßig lösche, schlägt das REDIS-Ding fehl und alles stürzt ab.

Vielen Dank :)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.