Magento 2 Indexers: voor dummies

Je hebt een nieuwe Magento 2 webshop afgenomen, echter er komt een product niet online. Hmm, maar ff contact opnemen met de webdeveloper met de vraag of die hier onderzoek naar kan doen!

“Er is een indexer vastgelopen, ik zal het resetten en dan is het product over 5 minuten weer online.” krijg je als antwoord. Mooi dat het probleem opgelost is, maar wat er nu werkelijk opgelost is, is nog onduidelijk.

Wat zijn indexers?

De indexers zijn een stuk of 11 (kan per shop verschillen) processen die op de achtergrond uitgevoerd worden op de server. Deze processen worden elke minuut uitgevoerd en kijken of er wijzigingen gedaan zijn in de webshop en of deze verwerkt en toonbaar gemaakt moeten worden in de beheeromgeving of in de frontend van de webshop. Een bestelling die gedaan wordt valt ook onder een wijziging in de webshop, er moet immers voorraad afgeschreven worden en een order in de beheeromgeving aangemaakt worden.

Wat doet Magento 2 ermee?

De onderliggende structuur van Magento 2 bestaat uit een grote database met daarin honderden tabellen. Deze tabellen bevatten alle informatie die de webshop nodig heeft om producten te tonen en verkopen. Hier valt de voorraad onder, maar ook prijzen, filters en product omschrijvingen.

Omdat deze informatie verspreid staat over deze honderden tabellen is het lastig om deze correct te tonen wanneer dit nodig is, bijvoorbeeld wanneer een bezoeker een productpagina bezoekt.

Dit is waar de indexers shinen! Deze indexers verzamelen alle gegevens van producten en zetten deze netjes gebundeld weg in een tiental tabellen. Deze tabellen zijn zo ingericht dat het vinden van producten makkelijk gemaakt wordt voor Magento 2.

Waarom zijn ze nodig?

Daar zijn maar 2 antwoorden op: Snelheid & Werkbaarheid! Zonder de indexers zou Magento 2 niet een leuke ervaring worden voor bezoekers van de webshop. Op het moment dat er in de beheeromgeving een product bewerkt wordt, zou deze niet soepel bekeken kunnen worden in de frontend. Simpelweg vanwege het feit dat wanneer het product opgeslagen wordt in de beheeromgeving de bezoeker moet wachten tot dit is afgerond. Met de indexers als extra laag tussen de productinformatie tabellen kan Magento 2 altijd snel bij de gegevens om deze te kunnen tonen aan de bezoekers van je webshop.

Waarom kunnen ze ‘vast’ komen te zitten?

De indexers zijn 11 of meer processen die elke minuut uitgevoerd worden. Dit zou het hostingpakket, en met name de server waar de webshop op draait, aan moeten kunnen. Is de server iets te zwak, of het bezoekersaantal opeens veel hoger dan normaal, dan kan het voorkomen dat de de indexers hun taken niet goed kunnen uitvoeren. Als een indexer door heeft dat dit het geval is dan loopt ‘ie ‘vast’, hij zet zichzelf uit totdat er gekeken is door een developer wat het probleem is. En wanneer het probleem opgelost is, zet de developer de indexer weer aan. Afhankelijk van de grootte van de webshop kan dit 5 tot 30 minuten in beslag nemen. Dit is een van de redenen dat we bij Webwijs altijd de Hypernode aanraden, dit zijn sterke servers met flexibele up- en downgrade mogelijkheden.

Hoe kan ik problemen voorkomen?

Het korte antwoord is server capaciteit verhogen. Oftewel hoger pakket afnemen waardoor de server meer middelen heeft om de indexers soepel te laten werken. Soms kunnen uitbreidingen van de Magento 2 webshop van derden ook onnodige druk op de indexers uitvoeren. Hier zal een developer een probleem-analyse voor moeten uitvoeren om hierin uitsluitsel te kunnen bieden. Echter is dit niet altijd nodig en kan een optimalisatie van de indexers zelf ook toereikend zijn.

Lees hier meer hierover in deze technische blogpost (let op! Een heel technisch verhaal!).

Delen?

Meer informatie over dit onderwerp? Mark maakt je volledig webwijs. Keertje afspreken?

Neem contact op

Mogen we jou ook webwijs maken? We zitten vol frisse ideeën waar we jou graag verder mee helpen.

Daag ons uit
Nico