Traitement de données
Exemple de mission type : scénario fondé sur des situations réelles, aucun client fictif.
"On reçoit chaque semaine un fichier CSV de notre partenaire avec les nouvelles annonces à intégrer. Jusqu'ici on le faisait à la main, fiche par fiche. Maintenant le fichier dépasse 40 000 lignes et ça plante systématiquement à mi-chemin. On voudrait un outil dans l'admin pour uploader le CSV, voir la progression en temps réel et récupérer un rapport avec les lignes qui ont posé problème. Sans passer par le terminal, sans plugin d'import générique, quelque chose taillé pour notre structure de données."
Quatre étapes, du premier audit à la livraison staging. La contrainte centrale : contourner la limite de 30 secondes du serveur sans accès SSH, en traitant le fichier par petits lots successifs depuis le navigateur.
Cartographie des champs du CSV partenaire, correspondance avec les custom post types et métadonnées WordPress existants. Identification des clés de déduplication et mesure des limites de mémoire et de temps d'exécution sur le serveur mutualisé.
Limite PHP : 30s, mémoire : 128Mo. Taille de lot retenu : 250 lignes par requête, compatible avec les deux contraintes sur les fichiers les plus chargés.
Le fichier est découpé côté serveur au moment de l'upload. Chaque lot est traité via une requête AJAX indépendante, avec un curseur de progression stocké en base. Si la page est fermée puis rouverte, l'import reprend au lot suivant sans repartir de la ligne 1.
Curseur stocké en option WordPress. Chaque lot : lecture, déduplication par clé externe, insertion ou mise à jour via wp_insert_post conditionnel.
Une page dédiée dans l'administration WordPress permet d'uploader le fichier, de suivre la progression lot par lot et de consulter les lignes en erreur au fur et à mesure. En fin d'import, un fichier CSV d'erreurs est proposé en téléchargement.
Barre de progression mise à jour via polling AJAX toutes les 2 secondes. Erreurs écrites dans une table temporaire, exportées en CSV natif PHP en fin de traitement.
Tests avec le fichier de 40 000 lignes fourni par le client : import complet, interruption volontaire et reprise, lignes malformées volontairement introduites, doublons intentionnels. Chaque scénario documenté dans la note de livraison.
Durée import complet sur staging : 18 minutes. Zéro timeout. 312 doublons détectés et mis à jour. 7 lignes en erreur correctement isolées dans le rapport.
Tout le nécessaire pour passer en prod sans question. Le code, les tests et la documentation pour que l'équipe reprenne sans avoir à revenir vers moi.
Le moteur batch tourne en production chaque semaine depuis le déploiement. L'agence gère les imports sans intervention technique. Les doublons sont détectés et mis à jour automatiquement. Le rapport d'erreurs permet à l'équipe de corriger les lignes problématiques sans avoir à passer par un développeur.
Deux façons de démarrer, selon ce qui vous convient le mieux.
Réponse sous 24h · Sans engagement · 100% sous votre marque
On cadre votre besoin, je reviens avec une estimation. Sans engagement.
Un brief en quelques lignes suffit. Je réponds sous 24h ouvrées.