Shopcache leeren per Cron

Hi zusammen,

gibt es ein Cron-Plugin welches die selben Bereich leert wie wenn man im Backend auf „Shop cachen leeren“ klickt? Dachte eigentlich dies würde über HTTPCache leeren mit laufen, stimmt aber nicht.

Hat hier jemand einen Tip außer über CLI Tools?

Gruß

ich glaube du kannst über CLI sw:theme:cache:generate machen, das kompiliert das theme neu und ich glaube der cache wird invalidiert

oder per sw:warm:http:cache den cache aufwärmen, dauert aber

@Creatixx schrieb:

Hi zusammen,

gibt es ein Cron-Plugin welches die selben Bereich leert wie wenn man im Backend auf “Shop cachen leeren” klickt? Dachte eigentlich dies würde über HTTPCache leeren mit laufen, stimmt aber nicht.

Hat hier jemand einen Tip außer über CLI Tools?

Gruß

Hallo,

diese Doku hilft dir sicher weiter: http://community.shopware.com/Plugin-CronRefresh_detail_698.html .

Beste Grüße

Sebastian

@derkosta schrieb:

ich glaube du kannst über CLI sw:theme:cache:generate machen, das kompiliert das theme neu und ich glaube der cache wird invalidiert

Hi,

ja schon, leider stehen aber die CLI Tools in der Umgebung nicht zur Verfügung. Daher die Frage nach einer Alternative.

 

ah ok, falsch gelesen.

Das sollte aber genau der Cron HTTP Cache löschen machen.

@sschreier schrieb:

@Creatixx schrieb:

Hi zusammen,

gibt es ein Cron-Plugin welches die selben Bereich leert wie wenn man im Backend auf „Shop cachen leeren“ klickt? Dachte eigentlich dies würde über HTTPCache leeren mit laufen, stimmt aber nicht.

Hat hier jemand einen Tip außer über CLI Tools?

Gruß

Hallo,

diese Doku hilft dir sicher weiter: http://community.shopware.com/Plugin-CronRefresh_detail_698.html .

Beste Grüße

Sebastian

Ich kenne die Dokus. Auf welchen Bereich willst du mich denn hier genau hinweisen?

Serverseitig ist der Cron eingerichtet und läuft. Ebenso die Cron-Plugins. Zumindest stehen die Daten in den Ereignisboxen. 

@derkosta schrieb:

 

Das sollte aber genau der Cron HTTP Cache löschen machen.

Dachte ich eigentlich auch. Kann das jemand bestätigen das eigentlich die selben Bereich geleert werden sollten? 

Ändere doch kurz vor dem Cronzeitpunkt Artikeldaten, danach siehst du ja ob die Änderungen live sind.

der cron macht genau das, http cache löschen.

Artikeldaten werden ja eh invalidiert. Aber Änderungen an den .tpl’s werden nicht übernommen. Erst nach manuellen Shop cache leeren.

Du kannst den Cache über Cron leeren, klar. Dazu muss nur die Datei  /var/cache/clear_cache.sh ausgeführt werden.

Wenn er ständig geleert werden soll… wieso wird er dann erst angeschaltet ? man kann den cache doch ausschalten oder nicht?

@kayyy schrieb:

Du kannst den Cache über Cron leeren, klar. Dazu muss nur die Datei  /var/cache/clear_cache.sh ausgeführt werden.

Geht in dieser Umgebung leider wegen fehlenden Zugriffsrechten nicht. CLI Tools stehen auch nicht zur Verfügung. 

@Dwza schrieb:

Wenn er ständig geleert werden soll… wieso wird er dann erst angeschaltet ? man kann den cache doch ausschalten oder nicht?

Weil SW einige Sachen cached. Der Cache müsste nur täglich um Mitternacht geleert werden. Von daher macht das schon Sinn in dem Fall.

Über Cache wäre die schnellste Lösung. Ansonsten müsste wohl ein Smarty Plugin bzw. ESI herhalten…

@Creatixx schrieb:

@kayyy schrieb:

Du kannst den Cache über Cron leeren, klar. Dazu muss nur die Datei  /var/cache/clear_cache.sh ausgeführt werden.

Geht in dieser Umgebung leider wegen fehlenden Zugriffsrechten nicht. CLI Tools stehen auch nicht zur Verfügung. 

Aber du kannst doch Crons ausführen oder nicht?

@kayyy schrieb:

Aber du kannst doch Crons ausführen oder nicht?

Schon, aber der Cron für clear_cache.sh scheiter ebenfalls an den Rechten. CHroot läuft mit Jailkit.

/bin/sh: ./clear_cache.sh: Permission denied

Innerhalb der clear_cache.sh werden ja die CLI Tools mit angesprochen und deren ausführung sind in der Umgebung nicht möglich. 

@Creatixx schrieb:

@kayyy schrieb:

Aber du kannst doch Crons ausführen oder nicht?

Schon, aber der Cron für clear_cache.sh scheiter ebenfalls an den Rechten. CHroot läuft mit Jailkit.

/bin/sh: ./clear_cache.sh: Permission denied

Innerhalb der clear_cache.sh werden ja die CLI Tools mit angesprochen und deren ausführung sind in der Umgebung nicht möglich. 

 

Mh - Ansonsten kannst du es ja hard direkt über den Cron löschen bspw. einfach 

rm -rf /web/cache

Dron wäre entsprechend

0 0 * * * rm -rf /web/cache >/dev/null 2>&1

Bei welchem Hoster bist du denn? Generell sollte das möglich sein, sofern du SSH Zugriff hast. Hast du der Datei denn entsprechende Rechte gegeben?

chmod u+x /var/cache/clear_cache.sh

Oder manchmal musst du auch entsprechend die PHP Version direkt ansteuern. Das ist natürlich von Hoster zu Hoster unterschiedlich, je nachdem wo die Version liegt. Bei mir wäre es zum Beispiel - auch vorraus gesetzt /bin/console hat die entsprechenden chmod u+x Rechte.

/opt/php-5.6.9/bin/php bin/console sw:theme:cache:generate

 

bin/console sollte ebenfalls ausführbar sein - setze mal ein

chmod +x bin/console

1 Like

Falls die API für dich eine Alternative ist, kannst du auch über einen „DELETE“ Aufruf auf den caches Endpunkt der API den Cache leeren.

http://community.shopware.com/REST-API-cache-endpoint_detail_1715.html