J'utilise Laravel 8 et je souhaite mettre à jour des milliards de prix de produits. J'ai ajouté ce code et cela a bien fonctionné mais il n'était pas efficace et cela a augmenté la charge
essayer { $priceCsvs = PriceCsv::whereStatus(PriceCsv::PENDING)->get(); foreach ($ priceCsvs comme $ price) { dump($price->name." est démarré"); $csvData = fopen($price->file_url, 'r'); $firstline = vrai ; while (($data = fgetcsv($csvData, 555, ',')) !== false) { if ($firstline && !empty($data)) { dump($données); } $firstline = faux ; } fclose($csvData); dump($price->name." est End"); } } catch (Exception $ex) { dump($ex->getMessage()); }Le point principal est : Existe-t-il un moyen d'obtenir les données d'un fichier CSV file Ajouter du sommeil après 1 000 foisCe qui fonctionne.
Si vous recherchez un emploi de placement, consultez-le
Planification des tâches
Définissez essentiellement certaines commandes de console (artisanales), puis planifiez-les dans un fichier de noyau de console. Le planificateur est exécuté à l'aide d'artisan et il est recommandé d'exécuter la commande (définir la tâche cron) toutes les minutes. Si la définition de la planification du noyau est cohérente avec la minute où la commande "php artisan Schedule:work" est exécutée, alors votre travail sera exécuté.