Invalidate cache taak Shopware 6 blijft vasthangen

door dec 21, 2022Shopware 6

Heel handig dat Shopware 6 laat zien of jouw site goed werkt. Zeker als je de Tools plugin van Friends of Shopware gebruikt.

Bij ons bleef echter heel vaak de taak shopware.invalidate_cache vasthangen. We probeerden meerdere dingen, maar kwamen er niet uit. We dachten zelfs dat er iets mis was met onze queues.

Gelukkig is de oplossing heel simpel!

Hoe lijkt het probleem te ontstaan?

De taken monitoren of er wijzigingen zijn om uit te voeren. Als er meerdere verzoeken staan, lijkt de taak te falen. Dit komt omdat er meer verzoeken zijn dan uitvoeringen.

Standaard heeft Shopware de invalidatie van de http cache staan op ongeveer 20 seconden. In de takenlijst staat de taak op 60 seconden. In die 60 seconden wordt de cache 3x geïnvalideerd, mogelijk zelfs terwijl de taak loopt. Dat lijkt problemen te veroorzaken binnen Shopware.

Als twee processen achter elkaar de cache ongeldig maken, dan wordt de timer van de cache gereset.

https://developer.shopware.com/docs/guides/hosting/performance/performance-tweaks#delayed-invalidation

Hetzelfde probleem lijkt zich voor te doen bij plugins die tijd gerelateerde taken uitvoeren, zoals winkelwagen-verlaten plugins.

Hoe weet ik of dit het probleem is?

Waarschijnlijk zie je binnen Tools bij Scheduled Tasks Manager dat de taak blijft vasthangen.

De oplossing

Om ervoor te zorgen dat de shopware.invalidate_cache altijd werkt, moet je in de shopware.yaml de cache invalidation anders instellen en/of de tijd van de taak aanpassen in Tools.

Cache invalidatie aanpassen

config/packages/shopware.yaml  
shopware:
 cache:
  invalidation:
   delay: 120
   count: 600

Let op: wij werken zelf niet met tabs, maar met spaties. Let er op dat al jouw elementen in de .yaml bestanden dezelfde afstanden hebben.

Taak aanpassen

  1. Ga naar Tools van Friends of Shopware
  2. Ga naar de kop Scheduled Tasks Manager.
  3. Dubbelklik op de tijd van de taak shopware.invalidate_cache.
  4. Stel een tijd in die korter is dan de count waarde welke je hierboven hebt ingevuld.
  5. Druk op het blauwe vinkje rechts naast de taak om de wijzigingen op te slaan.