HTTP Cache invalidieren

Hallo,

ich möchte manuell den HttpCache eines bestimmten Artikels invalidieren, aber das klappt irgendwie nicht - es passiert schlichtweg nichts.
Mittels

$cacheId = ‚a‘.$articleId; $cachware()->Events()->notify( Shopware_Plugins_HttpCache_InvalidateCacheId’, array(‚cacheId‘ => $cacheId) ); 

soll ein BAN-Request erzeugt werden, das ist an verschiedenen Stellen im Wiki und Forum dokumentiert.
Es passiert jedoch rein gar nichts, der Cache liefert die Seite schnell & munter weiter aus.

Kann jemand helfen?

Viele Grüße
Nils

 Hi, vom Prinzip her sieht es gut aus, an anderer Stelle machen wir das ja auch so. 

$this->getDqlHelper()->getEventManager()->notify(
    'Shopware_Plugins_HttpCache_InvalidateCacheId',
    array('subject' => $this, 'cacheId' => 'a'.$articleId)
);

Hast du in den Grundeinstellungen das ProxyPruning aktiviert? Die Funktion kann man ja auch global abschalten? Ansonsten musst du ab folgender Stelle durch-debuggen: 

\Shopware_Plugins_Core_HttpCache_Bootstrap::onInvalidateCacheId

Daniel

1 „Gefällt mir“

Hallo Daniel,

danke, ja, ProxyPruning ist aktiviert, und reichlich debuggt habe ich schon. Ich versteh’s einfach nicht…
Das Ganze läuft auf Nginx, vielleicht greifen hier noch andere Caching-Mechanismen, obwohl da eigentlich 
auch nichts aktiviert ist.

Nils

Hi,

wenn du dich von der Stelle, die ich genannt habe, durch steppst, müsstest du ja sehen, ob der überhaupt einen BAN-Request macht oder ob der vorher rausspringt - und wo. Dann kann man das Problem weiter eingrenzen. 

Schau dir auch mal an, welche ProxyURL er nutzt (hier: \Shopware_Plugins_Core_HttpCache_Bootstrap::getProxyUrl). Vll. ist da was an der ShopURL oder der PruneURL falsch.

Daniel

das passt alles, ban-request geht durch, kommt auch an & überhaupt. echt seltsam.

Ich bin einen Schritt weiter: der BAN-Request wurde zwar Shopware-seitig korrekt abgesetzt. Ich habe mir dann mal die Response angeschaut, und siehe da: Nginx meldet 405 Not allowed. Natürlich klappt es dann so nicht. Das liegt also wohl an der Nginx-Konfiguration, ich arbeite jetzt mit dem Provider an einer Lösung dafür. Am Rande: wenn ich Shopware\Components\HttpCache\Store\purgeByHeader() mal testweise manuell aufrufe, klappt es.

Hi,

konntest du das „405“- Problem lösen?

bei mir hängt es gerade auch genau an dieser Stelle.

 

@tremonti‍ Ja, der Provider (TimmeHosting) hat etwas an der Nginx-Config verändert, damit klappte es dann. Leider weiss ich nicht genau, was.