Ich verwende Laravel 8 und möchte Milliarden von Produktpreisen aktualisieren. Ich habe diesen Code hinzugefügt und er hat gut funktioniert, aber er war nicht effizient und er hat die Last auf dem Server erhöht.
try { $priceCsvs = PriceCsv::whereStatus(PriceCsv::PENDING)->get(); foreach ($priceCsvs as $price) { dump($price->name." wird gestartet"); $csvData = fopen($price->file_url, 'r'); $firstline = true; while (($data = fgetcsv($csvData, 555, ',')) !== false) { if (!$firstline && !empty($data)) { dump($data); } $firstline = false; } fclose($csvData); dump($price->name." is End"); } } Catch (Ausnahme $ex) { dump($ex->getMessage()); }
Der Hauptpunkt ist: Gibt es eine Möglichkeit, die Eingabe aus einer CSV-Datei zu erhalten? Datei Ruhezustand nach 1000 Malen hinzufügenWas funktioniert.
如果您正在寻找安排工作,请查看
任务调度
基本上定义一些控制台(artisan)命令,然后在控制台内核文件中安排它们。调度程序使用 artisan 运行,建议每分钟运行一次命令(定义 cron 作业)。如果内核调度项定义与“php artisan Schedule:work”命令运行的分钟一致,那么您的作业将执行。