Wie verwende ich Laravel s Stück zu vermeiden, läuft der Speicher?

Bin ich ziehen um 100k Datensätze aus der temporären Tabellen, tun einige geringfügigen änderungen an den Daten, das herunterladen von Fotos, und dann setzen die Felder, die ich brauche, um in eine "master" - Tabelle. Dies ist schnell verursacht meine app abstürzt, wie es läuft out of memory.

Lese ich die sehr kurze docs auf mit chunk() mit Laravel ist eloquent ORM aber nicht wissen, wie Sie beginnen sogar, es zu realisieren in meiner Klasse.

Hier ist, was ich bin derzeit dabei:

    public function fire()
{
    //Turn off query logging
    DB::connection()->disableQueryLog();

    $feeds = RetsFeed::where('active','=',1)->get();
    foreach ($feeds as $feed)
    {

        $class = "TempListing{$feed->board}";

        $listings = $class::orderBy('MatrixModifiedDT','desc')->get();

        $listings->each(function($listing) use ($feed) {
            ListingMigrator::migrateListing($listing,$feed);
            echo "Feed: $feed->board\r\n";
            echo "SubcondoName: $listing->SubCondoName\r\n";
            echo "Development: $listing->Development\r\n";
            echo "\r\n";
        });
    }

}

Jeder feed (oder Datenquelle) ausgegeben wird in eine temp-Tabelle in eine andere lästige Pflicht. Das funktioniert auch. Dann schnappe ich mir alle hte Inserate aus einem Tisch (rund 30k im Durchschnitt) und mein ListingMigrator Methode.

Wo lege ich das Stück in diesem Beispiel? Würde es ersetzen Sie die Zeile:

$listings = $class::orderBy('MatrixModifiedDT','desc')->get();

Verstehe ich nicht die Sperrung der beredte Dokumente. Das ist alles, was Sie zu sagen haben und hier ist das code Beispiel aus dem Laravel Website:

    User::chunk(200, function($users)
{
    foreach ($users as $user)
    {
        //
    }
});
Schreibe einen Kommentar