Μετάβαση στο περιεχόμενο
Οδηγοί

XML Feed Skroutz & BestPrice: μεγάλοι κατάλογοι, μνήμη και timeout

Τι κάνετε όταν η εξαγωγή κολλάει, βγάζει 504 ή φορτώνει τον server: memory limit, κατάσταση Τμηματικά (Chunk), Default Page Size και σωστό cron.

2 λεπτά για να το διαβάσετε

Σε καταλόγους με χιλιάδες προϊόντα και παραλλαγές, η εξαγωγή χρειάζεται μνήμη και χρόνο. Το plugin καθαρίζει μνήμη ανάμεσα στα τμήματα, αλλά ο server πρέπει να έχει περιθώριο.

Βήματα

  1. Στο «Overview» δείτε την κάρτα «PHP Memory Limit». Αν είναι κάτω από 256M, προσθέστε στο wp-config.php τη γραμμή define('WP_MEMORY_LIMIT', '256M'); ή ζητήστε το από τον πάροχο hosting.
    Η κάρτα «PHP Memory Limit» στην καρτέλα «Overview» με την τρέχουσα τιμή μνήμης
    Η κάρτα «PHP Memory Limit» δείχνει την τιμή μνήμης του server.
  2. Για πολύ μεγάλο κατάλογο, το ίδιο το plugin προτείνει 512M ή περισσότερο.
  3. Στο «Required Setup» → «Κατάσταση» (Mode) διαλέξτε «Τμηματικά» (Chunk): η εξαγωγή γίνεται σε τμήματα των «Default Page Size» προϊόντων (προεπιλογή 500) και στο τέλος ενώνονται σε ένα αρχείο.
    Η καρτέλα «Required Setup» με το πεδίο «Κατάσταση» (Mode) στην τιμή «Τμηματικά» και το «Default Page Size» 500
    Με Mode «Chunk» (στα ελληνικά «Τμηματικά») εμφανίζεται το «Default Page Size».
  4. Το «Cron» μοιράζει τα τμήματα σε εργασίες παρασκηνίου. Μετά το «Generate feed now» θα δείτε ότι η εξαγωγή ξεκίνησε και θα ολοκληρωθεί σε λίγα λεπτά.
  5. Τρέξτε την εξαγωγή από server cron και όχι από τον browser, για να μην κόβεται από timeout. Για την κατάσταση «Τμηματικά», προσθέστε chunk μετά το cron.php στην εντολή.

Φόρτος CPU και RAM

  • Μην βάζετε δύο cron jobs για το ίδιο feed και μην τρέχετε ταυτόχρονα τις εξαγωγές Skroutz και BestPrice. Βάλτε τες σε διαφορετικά λεπτά.
  • Αν οι τιμές σας δεν αλλάζουν κάθε ώρα, μια εξαγωγή κάθε 12 ώρες φτάνει.
  • Η εξαγωγή καθαρίζει το object cache ανάμεσα στα τμήματα. Σε server με Redis/Memcached αυτό είναι φυσιολογικό.