Se il tuo negozio ha migliaia di prodotti, ordini o clienti, un'esportazione che funziona bene su un catalogo piccolo può improvvisamente bloccarsi, andare in timeout o terminare senza alcun file su uno più grande. Raramente è un difetto di Store Exporter Deluxe stesso. È quasi sempre il tuo server che esaurisce la memoria PHP o il tempo di esecuzione consentito per una singola richiesta.
Quick Export divide già ogni esportazione in batch, quindi non cerca di elaborare l'intero catalogo in una sola volta. Tuttavia, un negozio abbastanza grande può aver bisogno di un po' più di margine PHP, ed è utile sapere dove cercare quando un'esportazione non viene completata. Questo articolo spiega come funziona il batching, quali impostazioni PHP sono più importanti e come utilizzare il registro di controllo e i log di WooCommerce per scoprire perché un'esportazione si è interrotta.
Prerequisiti
| Requisito | Dettagli |
|---|---|
| Plugin | Store Exporter Deluxe è attivo e con licenza |
| WooCommerce | Attivo, poiché le esportazioni estraggono i loro dati dal tuo negozio WooCommerce |
| Accesso all'hosting | Possibilità di modificare memory_limit e max_execution_time di PHP, o un host che puoi chiedere di aumentarli |
| Accesso amministrativo | Un account con accesso alla dashboard di amministrazione di WordPress |
Come funziona il batching
Quick Export non carica mai l'intero catalogo in memoria contemporaneamente. Invece, divide i record che stai esportando in batch di 100 per impostazione predefinita, quindi elabora un batch per richiesta. Quindi un'esportazione di 5.000 prodotti viene eseguita come 50 batch separati invece di un'unica enorme query, il che mantiene l'utilizzo della memoria prevedibile, indipendentemente da quanto cresce il tuo negozio. Il progresso di ogni batch viene salvato al suo completamento, quindi se stai osservando l'esecuzione di un Quick Export, la barra di avanzamento che vedi aumenta un batch alla volta invece di attendere il completamento dell'intera esportazione prima di mostrare qualcosa. Le Esportazioni Pianificate funzionano in modo diverso. Vedi Le esportazioni pianificate non sono una soluzione per errori di memoria o limiti di tempo di seguito.
Impostazioni PHP consigliate per grandi esportazioni
Quick Export: Ogni batch di Quick Export è una richiesta a sé stante e ogni batch viene eseguito sotto il memory_limit e max_execution_time PHP normali del tuo server. Il plugin non aumenta questi limiti per un batch e l'impostazione Script Timeout non li modifica. Quindi, per Quick Export, le due cose che aiutano sono una Dimensione Batch più piccola (sotto) e limiti PHP più alti sul tuo host. Se le esportazioni si interrompono con errori di memoria, o si interrompono costantemente dopo circa la stessa quantità di tempo, chiedi al tuo host di aumentare memory_limit e max_execution_time nella configurazione PHP del tuo server.
Esportazioni Pianificate: Quando un'esportazione pianificata si avvia, Store Exporter Deluxe chiede a PHP di aumentare il suo limite di memoria a WP_MAX_MEMORY_LIMIT del tuo sito e applica l'impostazione Script Timeout come limite di tempo di esecuzione. WordPress imposta WP_MAX_MEMORY_LIMIT a 256 MB per impostazione predefinita, ben al di sopra del minimo del plugin di 64 MB. Detto questo, molti host bloccano queste sovrascritture in tempo reale e impongono i propri limiti rigidi indipendentemente da ciò che richiede il plugin. Se un'esportazione pianificata di grandi dimensioni si interrompe ancora, chiedi al tuo host di aumentare memory_limit e max_execution_time direttamente nella configurazione PHP del tuo server.
Script Timeout: Controlla Impostazioni → Generali → Script Timeout prima di un'esportazione pianificata di grandi dimensioni. Viene fornito come Illimitato. Se è stato modificato in 10 minuti, 30 minuti o 1 ora, un'esportazione pianificata che dura più a lungo si interrompe al raggiungimento di quel limite. Reimpostalo su Illimitato prima di eseguire un'esportazione pianificata di grandi dimensioni. Questa impostazione non influisce sui batch di Esportazione Rapida.
Regolazione della dimensione del batch per esportazioni molto grandi
- Apri WooCommerce → Store Export dal menu di amministrazione di WordPress.
- Fai clic su Esportazione Rapida nella barra laterale.
- Nella fase Seleziona Tipo di Esportazione, scegli cosa desideri esportare.
- Continua attraverso Campi di Esportazione (e Filtri e Ordinamento, se appare per quel tipo) per raggiungere la fase Opzioni di Esportazione.
- Sotto Impostazioni Batch, inserisci un numero nel campo Dimensione Batch. È vuoto per impostazione predefinita, il che utilizza il valore integrato del plugin di 100 record per batch.
Ridurre la Dimensione Batch (ad esempio, a 25 o 50) rende ogni singola richiesta di batch più leggera in termini di memoria e più veloce da completare, il che aiuta su un server con un basso memory_limit o max_execution_time. Il compromesso è un numero maggiore di batch complessivi, quindi l'esportazione completa richiede più richieste per essere completata. Non esiste un minimo fisso, quindi vale la pena testare un valore più piccolo se le tue esportazioni di dimensioni predefinite sono quelle che vanno in timeout.

Utilizzo del Registro di Controllo per verificare un'esportazione di grandi dimensioni
Store Exporter Deluxe tiene traccia di ogni esecuzione di esportazione nel suo Registro di Controllo, disponibile dalla barra laterale sotto WooCommerce → Esportazione Negozio. Ogni voce mostra il tipo di esportazione, cosa l'ha innescata, il suo stato e i timestamp.

Fai clic su una voce per espanderla. Se l'esecuzione mostra Fallito, la vista espansa include il messaggio di errore.

Un errore di memoria o di limite di tempo funziona in modo diverso. Quando PHP esaurisce la memoria o il tempo, interrompe l'esportazione immediatamente, prima che il plugin possa registrare qualcosa. La voce rimane quindi su In esecuzione senza alcun messaggio di errore. Per confermare cosa è successo, vai su WooCommerce → Stato → Log e cerca un log con origine errori-fatali, o chiedi al tuo host il log degli errori PHP.
Il registro di controllo è attivato per impostazione predefinita. Se manca nella barra laterale, qualcuno ha disattivato l'interruttore Attiva registro di controllo in Impostazioni → Registro di controllo.
La stessa sezione Impostazioni → Registro di controllo controlla anche quanti dettagli cattura ogni voce, impostato separatamente per Esportazioni rapide e Esportazioni pianificate. Il livello predefinito Standard registra già la Durata. Passa un'origine a Dettagliato per catturare anche l'Utilizzo massimo della memoria.

Vale la pena attivare questa opzione mentre si ottimizza una grande esportazione, poiché indica quanto ogni esecuzione completata si è avvicinata al proprio memory_limit e quanto tempo ha impiegato. Ciò mostra quanto margine rimane prima che un'esportazione più grande raggiunga il limite.

L'esportazione pianificata non è una soluzione per errori di memoria o di limite di tempo
Un'esportazione pianificata non raggruppa i record come fa l'esportazione rapida. Elabora l'intero set di dati come un singolo processo in background tramite Action Scheduler. Il plugin richiede più memoria a PHP e applica Timeout script all'avvio dell'esecuzione, ma se il tuo host blocca tali sovrascritture, il processo viene comunque eseguito entro i limiti del tuo host. Come singolo processo non raggruppato, in genere richiede *più* memoria di un'esportazione rapida raggruppata, non meno. Non esiste un campo Dimensione batch nel modulo Esportazione pianificata perché non c'è nulla da raggruppare.
Ciò che un'esportazione pianificata evita è la dipendenza dalla scheda del browser: poiché viene eseguita come processo in background, non è legata alla scheda del browser che rimane aperta o a quanto tempo è consentita un'richiesta di pagina nel tuo browser. Se un'esportazione rapida si blocca perché non riesci a mantenere la scheda aperta abbastanza a lungo, un'esportazione pianificata risolve quel problema specifico. Se si blocca per memoria o tempo di esecuzione, riduci invece la Dimensione batch o aumenta i limiti PHP. Per istruzioni dettagliate, vedi Come pianificare le esportazioni in Store Exporter Deluxe.
Risoluzione dei problemi
memory_limit o max_execution_time a metà batch. In tal caso, la voce corrispondente del Registro di controllo rimane su In esecuzione senza messaggio di errore, poiché PHP si interrompe prima che il plugin possa registrarne uno. Per confermare, vai su WooCommerce → Stato → Log e apri il log con origine errori-fatali, o chiedi al tuo host il log degli errori PHP. Una riga che inizia con “Allowed memory size of” o “Maximum execution time of” lo conferma. Se la voce mostra Fallito invece, espandila per leggere il messaggio di errore.Se si trattava di un'esportazione rapida, prima di riprovare, vai su Impostazioni → Avanzate, trova Cancella transitorio esportazione sotto Manutenzione e fai clic su Cancella. Se salti questo passaggio, la successiva esportazione rapida mostrerà “Un'esportazione è già in esecuzione.” per un massimo di 30 minuti. Quindi riduci la Dimensione batch e riprova. Ogni batch viene eseguito entro i limiti PHP del tuo server, quindi chiedi al tuo host di aumentare entrambe le impostazioni PHP se il problema persiste. Se ciò accade con un'esportazione pianificata, controlla anche che Impostazioni → Generali → Timeout script sia impostato su Illimitato.
memory_limit e max_execution_time.FAQ
memory_limit e max_execution_time del tuo host, senza alcuna impostazione di Dimensione batch a cui fare affidamento. Un'esportazione pianificata potrebbe effettivamente avere maggiori probabilità di andare in timeout su un catalogo molto grande rispetto a un'esportazione rapida con una dimensione batch ridotta.Articoli correlati
Serve ulteriore aiuto?
Se stai usando Store Exporter Deluxe e un'esportazione di grandi dimensioni non viene ancora completata dopo aver provato i passaggi precedenti, apri un ticket di supporto e il nostro team ti aiuterà a farlo funzionare.
Se stai utilizzando il plugin gratuito Store Exporter, chiedi sul forum di supporto di WordPress.org e il nostro team ti risponderà lì.

